[英]Uploading multiple files doesn't work
因此,我試圖通過將發送每個文件的文件上傳到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網站:
好吧,這是我的愚蠢。 我將此變量設置為:
var uri = "/index.php";
但是我的upload.php文件位於:/home/web_stuff/upload/index.php
因此,它總是從以下位置返回文本:/home/index.php,並在那里也查找上傳表單
我將其設置為“你好,世界!” (這讓我最困惑,為什么總是返回Hello World)。
結論:問題出在php文件的路徑上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.