我有一个在Visual Studio中编码的C#桌面应用程序,以及一个要求20个字段信息并允许用户附加.pdf或.docx文件的网站。我有一个我编写的XML解析器,它接收单个用户的信息,并处理它并在C#应用程序上使用它。 .pdf和.docx捆绑在与XML相同的文件夹中,因此我可以调用.pdf和.docx文件的路径来使用它们。
我认为XML是用一个只在按下按钮上执行的PHP脚本制作的,然后将其保存在网站服务器上的一个位置。 C#工具需要能够获取该文件夹并获取XML并在需要时下载.pdf和.docx。
我从未组合过跨平台,这是一个绿地项目,我使用Selenium C#网络自动化库来自动使用来自每个XML的数据。它将完成处理XML,进行8小时的处理循环,然后在需要时将下一个XML放入队列中。
我想了解如何从表单从网站转到C#应用程序。实际上并不需要返回响应,但是要知道正在处理的XML队列中XML文档所处的顺序将在之后进行。
SOAP / Restful tech似乎是一个好主意,因为我认为我不需要在这里重新发明轮子,但它们似乎都是有效的。
答案 0 :(得分:1)
如果我理解正确你需要发送文件跨平台,你可以通过编码发送一个字节流并按如下方式解除它:
C#编码
Byte[] bytes = File.ReadAllBytes("c:\file.pdf");
String file = Convert.ToBase64String(bytes);
C#解码
Byte[] bytes = Convert.FromBase64String(b64Str);
File.WriteAllBytes("c:\file.pdf", bytes);
PHP编码
$b64Doc = chunk_split(base64_encode(file_get_contents("c:\file.pdf")));
PHP解码
$pdf_base64 = "base64string";
//Get File content from txt file
$pdf_base64_handler = fopen($pdf_base64,'r');
$pdf_content = fread ($pdf_base64_handler,filesize($pdf_base64));
fclose ($pdf_base64_handler);
//Decode pdf content
$pdf_decoded = base64_decode ($pdf_content);
//Write data back to pdf file
$pdf = fopen ('"c:\file.pdf','w');
fwrite ($pdf,$pdf_decoded);
//close output file
fclose ($pdf);
echo 'Done';