上传多个文件不起作用

时间:2013-11-23 12:55:09

标签: javascript php jquery upload xmlhttprequest

所以我试图通过将发送每个文件的文件上传到XMLHttpRequest来规避PHP中的max_post_size(因为我无法访问服务器的php.ini)。 我是PHP / JS的新手,所以我可能错过了一些非常明显的东西。

我遇到的问题是文件没有上传,而responseText总是打印“Hello World!”......

现在这是我的代码:

<?php
if (isset($_FILES['myFile'])) {
// Example:
    move_uploaded_file($_FILES['myFile']['tmp_name'], "uploads/" . $_FILES['myFile']['name']);
    echo "responseText???";
    exit;
}?>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>

<input type="file" multiple="multiple" id="filesInput" /> <br/>
<input type="button" id="uploadButton" value="Buton" />
 
<script type="text/javascript">

function sendFile(file) {
    var uri = "/index.php";
    var xhr = new XMLHttpRequest();
    var fd = new FormData();

    xhr.open("POST", uri, true);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            // Handle response.
            //alert(xhr.responseText); // This only prints Hello World...:/
        }
    };
    fd.append('myFile', file);
    // Initiate a multipart/form-data upload
    xhr.send(fd);
}

$("#uploadButton").on("click", function(){
    var files = $('#filesInput').prop('files');
    var len = files.length;
    for(var i=0; i<len; i++){
        $("#uploadFileNames").append(files[i].name + "<br/>");
        sendFile(files[i]);
    }
});

</script>

PS:部分代码来自Mozilla网站:

https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications#Example:_Uploading_a_user-selected_file

1 个答案:

答案 0 :(得分:0)

嗯,这对我来说是愚蠢的。我把这个变量设置为:

var uri = "/index.php"; 

但我的upload.php文件位于:/home/web_stuff/upload/index.php

所以它始终返回来自:/home/index.php的文本,并在那里查找上传表单

我设置为&#34;你好,世界!&#34; (这让我最为困惑,为什么它总会返回Hello World)。

结论:问题在于php文件的路径。