我从第三方获得了通过http协议向我发送文件的文档,我需要编写一个成功接收发送文件的脚本。内容类型设置为application/gzip
,因此我无法使用$_FILES
变量获取上传的文件,因为使用multipart/form-data
会很容易。
这个链接给了我一个提示:http://php.net/manual/en/features.file-upload.post-method.php
注意: 请确保您的文件上传表单具有enctype =“multipart / form-data”属性,否则文件上传将无效。
我尝试使用以下网址http://blog.derakkilgo.com/2009/06/07/send-a-file-via-post-with-curl-and-php/
中的示例重现他们的“客户端”以测试我的服务器为了确保可以使用跨域发布,我使用了@slashingweapon CORS with php headers
发布并解释的功能必须有办法 - Halp!
答案 0 :(得分:0)
您知道的是,您只需要下载已上传到服务器的文件,尝试使用以下代码以二进制模式获取文件:
ftp_fget($conn_id, $file, FTP_BINARY, 0);
参考:http://php.net/manual/en/function.ftp-get.php
共享文件的第三方必须与您共享连接详细信息。
答案 1 :(得分:0)
感谢@ fusion3k指出了正确的方向。
$rawData = file_get_contents("php://input")
给出了我必须从中解析文件的RAW数据。提取它是很痛苦的,因为它是一个二进制文件。我用了
$rawData = explode("\n", $rawData)
$valuableData
$convertedLine = unpack("H*", $valuableData[count($valuableData)-1])
$convertedLine[1] = substr($convertedLine[1], 0, -2)
中删除数据的最后一个字节(不知道为什么`unpack返回一个数组)$valuableData[count($valuableData)-1] = pack("H*", $convertedLine[1])
implode("\n", $valuableData)
并将其写入文件