2012-01-11 133 views
0

我有一个C客户端需要上传文件到Web服务器。 我打开文件并使用Windows库发送它。从C客户端上传文件到PHP服务器

在服务器端,我想编写一个保存文件的PHP脚本。

问题1: 因为这不是一般的HTML表单POST给PHP - 我该如何与它的数据一起传送? 建议使用POST'/upload.php?file=filename'并在正文中发送数据? 如果我使用这个,我可以通过$ _GET获取文件名,并通过$ _POST获取文件内容。

问题2: 如果文件跨越超过1包,会发生什么?我需要在PHP端以某种方式跟踪连接以将POST主体附加到文件。有没有干净的方法来做到这一点?

谢谢!

+0

**一次**问题请一次^ _^ – Neal 2012-01-11 20:07:54

回答

0

你应该试试libcurl,它也可以做文件上传。

或者,您可以了解multipart/form-data MIME类型以及它如何编码文件和元数据。简而言之,您将请求主体分割为具有边界的部分,并为每个文件添加标题。

+0

我不能在我的项目中使用libcurl。 我正在使用WinHTTP(读取整个文件并将其发布到php脚本_ – user1144031 2012-01-11 20:36:51

+0

哦。那么,如果可以使用multipart/form-data格式(它应该),该文件应该在PHP中的$ _FILES数组中找到,就像它被浏览器发送时一样,如果它真的只是发送文件作为整个请求体,那么很糟糕,请使用GET。 – 2012-01-11 20:49:26

+0

而在你问之前,我相信你需要阅读一个“文件”在第二种情况下调用'php:// input'来接收这些数据,而且我不确定它在这之前不在RAM中(因为PHP通常会分析POST数据并在实际启动之前填充$ _POST数组脚本)。 – 2012-01-11 20:52:09

相关问题