我正在使用 Valums FileUploader,但在上传文件后无法获取和读取响应。基本上,我试图获得一个有用的响应以在 onComplete 中使用,无论是成功还是错误消息。
我在这里发现了另一篇文章,说服务器可能需要设置为内容类型纯文本/文本。我检查了一下,确实是这样的设置。
无论如何,一直在做很多搜索并找到各种要检查的东西,但似乎还没有解决我的问题。
以下是上传者的一些缩写代码:
var uploader = new qq.FileUploaderBasic({
button: document.getElementById('btnUpChange'),
action: templateURL+'/upload.php',
allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'],
onSubmit: function(id, fileName) {
},
onComplete: function(id, fileName, responseJSON) {
var fileMsg = responseJSON;
console.log(fileMsg);
$('#filemsg').html('<span class="red" >'+fileMsg+'</span>');
}
});
这是上传后控制台中的文本:
"[uploader] xhr - server response received"
"[uploader] responseText = File is too large"
[object Object]
我故意将 $sizeLimit 设置为小以抛出错误只是为了尝试获取消息。
我将上传器 zip 中包含的 php.php 文件复制并重命名,然后在末尾添加:
$allowedExtensions = array('jpg', 'jpeg', 'png', 'gif');
$sizeLimit = 4 * 1024;
$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
// Call handleUpload() with the name of the folder, relative to PHP's getcwd()
$result = $uploader->handleUpload('uploads/', $replaceOldFile = true);
if ($result['success'] !== true) {
echo $result['error'];
} else {
echo $result['success'];
}
如果上传成功,我只是得到一个 1 返回到 onComplete 方法。我尝试使用 responseJSON.responseText,但我得到的只是“未定义”。
谢谢您的帮助。