gpt4 book ai didi

javascript - Ajax 文件上传 - 服务器端错误

转载 作者:行者123 更新时间:2023-11-28 19:57:44 25 4
gpt4 key购买 nike

我正在尝试通过 HTML5 文件 API 实现 ajax 文件上传。它基于 Afzaal Ahmad Zeeshan 对 this 的回答问题。

我基本上复制了他写的整个代码,但无法让它工作。

这里的主要目标是能够将 .xls.xlsx 文件上传到服务器,以便稍后使用 PHPExcel 使用它们.

这是我的 HTML:

<form class="form-uploadXLS" method="post" action="php/uploadXLS.php" enctype="multipart/form-data">
<div class="form-group">
<div class="col-md-12">
<input type="file" name="xls" class="xls" />
</div>
</div>
<input type="button" value="Upload" class="btn-uploadXLS" />
</form>
<progress></progress>

这里是 jQuery 事件处理程序,就像上面提到的答案一样:

文件输入onChange事件:

$('.xls').on('change', function () {
var file = this.files[0];
var fileName = file.name;
var fileType = file.type;
var fileSize = file.size;

console.log("file name: " + fileName + ", type: " + fileType + ", size: " + fileSize);
});

上传按钮的onClick事件:

$('.btn-uploadXLS').on('click', function (event) {
event.preventDefault();
console.log("Upload button clicked");
var formData = new FormData($('.form-uploadXLS')[0]);

$.ajax({
url: 'php/uploadXLS.php', //Server script to process data
type: 'POST',
xhr: function () { // Custom XMLHttpRequest
var myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) { // Check if upload property exists
myXhr.upload.addEventListener('progress', progressHandlingFunction, false); // For handling the progress of the upload
}
return myXhr;
},
//Ajax events
beforeSend: function (stuff) {
console.log("BeforeSend");
console.log(stuff);
},
success: function (data) {
console.log("Success!");
console.log(data);
},
error: function (error) {
console.log("Error!");
console.log(error);
},
// Form data
data: formData,
//Options to tell jQuery not to process data or worry about content-type.
cache: false,
contentType: false,
processData: false
});
});

编辑从这里开始:

最后这是我的 PHP 代码,它打印出 $_FILES 数组:

if(!empty($_FILES['xls'])) {
echo '<pre>',print_r($_FILES,1),'</pre>';
}
else {
die('POST ÜRES');
}

结果如下:

Array
(
[xls] => Array
(
[name] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)

)

由于某种原因,我无法访问错误消息,它只包含数字 4。

我做错了什么?

最佳答案

对于您需要的文件

$_FILES['xls'] 不是 $_POST

阅读Handling file uploads

<小时/>要获取更多信息,只需打印数组

echo '<pre>',print_r($_FILES,1),'</pre>'

阅读php - file upload

Ajax File Upload with PHP, HTML5 File API and jQuery

关于javascript - Ajax 文件上传 - 服务器端错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22232214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com