使用“少许香草框架”构建上传功能

时间:2018-09-13 16:37:04

标签: javascript php file-upload xmlhttprequest

看着this document;我正在尝试使用XMLHttpRequest上传文件。

这是我的开始方式:我将代码放在文档的香草框架部分中。然后,我首先使其在自己的网站上运行。然后,要实现上传功能,我想修改 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 的文件,但其长度为零。

我认为上述三行有误,但我做错了什么?

2 个答案:

答案 0 :(得分:3)

正确的方法是使用

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], "MyData.jpg");

其中“ fileToUpload”是您为文件按钮指定的字段名称

答案 1 :(得分:1)

我想您会在这里获得数据:$ _FILES ['photos'] ['tmp_name'] [0]。 请尝试。

您可以像下面这样重写代码:

foreach($_FILES['photos']['tmp_name'] as $i=>$file){
    if($_FILES['photos']['error'][$i] == 0){
        move_uploaded_file($file, "MyData_".$i.".jpg");
    }
}