我需要以PHP的Byte []形式将文件内容发布到网页(C#)。我已尝试使用cURL
和stream_context_create()
,但我认为归结为我是如何读取文件的。
我的帖子内容/ CURLOPT_POSTFIELDS如下:
$data .= "\r\n--" . $boundary . "\r\n";
$data .= "Content-Disposition: form-data; name=\"file\"; filename=\"" . $files['name'][$id] . "\"\r\n";
$data .= "Content-Type: application/octet-stream\r\n\r\n";
$data .= file_get_contents($files['tmp_name'][$id]) . "\r\n";
$data .= "--" . $boundary . "--\r\n";
但这不起作用。
Post byte array from PHP to .NET WCF Service说file_get_contents()
兼容 - 但我没有找到任何证据。
http://bytes.com/topic/php/answers/869014-how-convert-gif-file-byte-array-thanks说明这是不可能的。 (没有什么是不可能的!)
我也尝试使用fread()
fopen()
和file()
等的变体
PS我知道webservice工作正常,因为在C ++ / Java等中有点相同的脚本可以正常工作。 file.readAll()
是file_get_contents()
行的唯一区别......
感谢任何无聊的评论或解决我的困境的答案!
答案 0 :(得分:1)
file_get_contents()
兼容。它将返回文件内容的二进制字符串,这是您根据自己的问题寻找的内容。只是为了澄清这一点。
我假设您在其他地方有错误,或者您在错误的上下文中使用该数据。从你的问题到我的地方不清楚。
我在您的代码中看到的是,您没有进行任何错误检查和处理。
将PHP的错误处理设置为PHP配置中的最大级别并记录错误。然后监视错误日志。
同时检查文件上传过程中的错误the PHP Manual has a complete entry about how it works。文件上传的错误处理。