【问题标题】:Uploading File from C Client to PHP Server从 C 客户端上传文件到 PHP 服务器
【发布时间】:2012-01-11 20:04:39
【问题描述】:

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

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

问题 #1: 由于这不是通常的 HTML FORM POST 到 PHP - 我如何传输 filename 连同它的数据? 建议使用 POST '/upload.php?file=filename' 并在正文中发送数据? 如果我使用它,我可以通过 $_GET 获取文件名并通过 $_POST 获取文件内容。

问题 #2: 如果文件跨越超过 1 个数据包会发生什么?我需要在 PHP 端以某种方式跟踪连接,以将 POST 正文附加到文件中。有什么干净的方法吗?

谢谢!

【问题讨论】:

  • 一个问题一次请^_^

标签: php file-upload upload


【解决方案1】:

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

或者,您可以了解 multipart/form-data mime 类型以及它如何对文件和元数据进行编码。简而言之,您将请求正文拆分为带有边界的部分,并为每个文件添加标头。

【讨论】:

  • 我不能在我的项目中使用 libcurl。我正在使用 WinHTTP(读取整个文件并将其发布到 php 脚本_
  • 哦。那么,如果可以使用 multipart/form-data 格式(它应该),该文件应该在 PHP 中的 $_FILES 数组中找到,就像它是由浏览器发送时一样。如果它真的只是将文件作为整个请求正文发送,那么,太糟糕了,使用 GET。
  • 在你问之前,我相信你需要阅读一个名为 'php://input' 的“文件”才能在第二种情况下接收该数据。而且我不确定在你这样做之前它是否没有保存在 RAM 中(因为 PHP 通常会在实际启动脚本之前解析 POST 数据并填充 $_POST 数组)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
相关资源
最近更新 更多