move_uploaded_file PHP方法不起作用

时间:2017-12-26 17:19:16

标签: php jquery file-upload backend

我正在尝试编写文件上传页面的服务器端代码。在客户端,我使用jQuery AJAX对象发送FormData对象,该对象包含两个键为“0”和“1”的图像。我检查了对象是否被发送到后端。

唯一的问题是move_uploaded_file方法返回false。

if (isset($_FILES["0"])) {
    if(move_uploaded_file($_FILES["0"]['tmp_name'], "/" . $_FILES["0"]["name"])){
        echo "okay";
    }
    else {
        echo "halfokay";
        print_r($_FILES);
    }
}
else {
    exit;   
}

输出:

halfokArray
(
    [0] => Array
        (
            [name] => _DSC0726.JPG
            [type] => 
            [tmp_name] => 
            [error] => 1
            [size] => 0
        )

    [1] => Array
        (
            [name] => _DSC0728.JPG
            [type] => 
            [tmp_name] => 
            [error] => 1
            [size] => 0
        )

)

更新:它适用于较小的图像,但最终它不在应有的位置。

JQuery:

      var formData = new FormData();
      for (var i = 0; i < window.images.length; i++) {
                formData.append(i,window.images[i]);
              }
                  $.ajax({
                    url: 'realpetadupload.php',
                    data: formData,
                    processData: false,
                    contentType: false,
                    type: 'POST',
                    success: function(data){
                      alert(data);
                    }
                  });

2 个答案:

答案 0 :(得分:0)

在输出错误中显示1.这意味着上传的文件超过了php.ini中的upload_max_filesize指令。

请检查上传文件的大小。允许上传超过最大文件大小。

答案 1 :(得分:0)

原来,由于某种原因,我无法写入我的Web服务器的根文件夹。将路径更改为其他位置是解决方案。