我尝试使用BackgroundTrasfer Sample将文件上传到Apache服务器。 问题是我找不到服务器端PHP脚本,它使用php:// input而不是enctype =“multipart / form-data”。
PHP开发人员说改变你的C#。 C#开发人员说改变你的PHP。我很绝望。我确信我不是试图将文件从Windows应用程序上传到没有ASP的Apache服务器的拳头。最后它应该是一个标准的脚本。
最后我必须将这个ASPX脚本翻译成PHP
string fileName = Request.Headers["Filename"];
Response.Write("Filename is " + fileName);
string saveLocation = Server.MapPath("Data") + "\\" + fileName;
using (System.IO.FileStream fs = new System.IO.FileStream(saveLocation, System.IO.FileMode.Create))
{
Request.InputStream.CopyTo(fs);
}
答案 0 :(得分:1)
$handle = fopen("php://input", "rb");
while (!feof($handle)) {
$contents = fread($handle, 1024*1024); //Read by 1mb
file_put_contents('file.bin', $contents, FILE_APPEND);
}
fclose($handle);
这只是一个例子,它缺乏验证等等!但它应该让你对阅读文件的方式有所了解。
在这里你可以多写一点(使用PUT方法时常用):http://php.net/manual/pl/features.file-upload.put-method.php