【发布时间】:2019-02-18 10:50:03
【问题描述】:
看着this document;我正在尝试使用XMLHttpRequest 进行文件上传。
我是这样开始的:我在文档的A little vanilla framework 部分获取代码。然后我首先让它在我自己的网站上运行。然后为了实现上传功能,我想修改 register.php 文件的结尾。实际上,那里已经发生了到服务器的文件传输。要称其为上传,我只需将文件保存在服务器上即可。
我在这几行之后这样做:
echo "\n\n:: Files received ::\n\n";
print_r($_FILES);
在那里,我想在服务器上写入 $_FILES[0] 的内容。为此,我使用以下代码:
$myfile = fopen("MyData.jpg", "w");
fwrite($myfile, $_FILES[0]);
// The three lines below that I have tried instead of the one above do not work either.
//fwrite($myfile, json_encode($_FILES['photos']);
//fwrite($myfile, json_encode($_FILES[photos[0]]);
//fwrite($myfile, json_encode($_FILES['photos'][0]);
fclose($myfile);
结果,服务器上按预期写入了一个名为MyData.jpg的文件,但其长度为零。
我认为上面三行有错误,但是,我做错了什么?
【问题讨论】:
-
secure.php.net/manual/en/features.file-upload.php
$_FILES[0]不是文件。这是关于文件的信息。 -
它可能不会是
$_FILES[0]。它将是$_FILES['name_of_form_field']。这将是一个数组,如果您想将数据写入某个地方,您需要使用print_r($_FILES['name_of_form_field'], true)或json_encode($_FILES['name_of_form_field'])或其他东西对其进行字符串化,因此fwrite知道如何处理它。 -
感谢您的建议。我试过了,但暂时不起作用。我也更新了我的帖子以反映这一点。
标签: javascript php file-upload xmlhttprequest