我试图通过Uploadify v3(Flash版本)上传一些文件。 upload.php验证每个文件,例如对于最小的图像尺寸等,我似乎找不到告诉javascript的方法,即处理过的文件有错误。
这里有一些代码 - upload.php:
if(move_uploaded_file($tempFile,$targetFile)) {
$size = getimagesize($targetFile);
if($size['0'] >= 100) {
//modify, copy, blablah
echo "successful";
} else {
echo "error2"; //the width of the file is too small
unlink($targetFile);
die();
}
} else {
echo "error1"; //fail while copying
die();
}
每次脚本运行时,我都会使用onUploadSuccess
- 事件:
'onUploadSuccess' : function(file, data, response) {
console.log(file+" ----- "+data+" ----- "+response);
}
响应是true
任何文件,上传 - 无论php是什么都不返回,字符串(数字,假," error1"),int(0,1,2, ......)或其他什么。
如何从php向客户端提交错误?!
编辑:变量data
显示回显的字符串正确,但上传操作/响应为true
/成功...
答案 0 :(得分:0)
如果您的服务器没有返回错误代码(404,500, etc
),jQuery会认为您的请求是成功的。如果你想从服务器端返回一个错误,比如“图像太大”,你就要捕获这些数据并在客户端对它做些什么。
因此,假设您的请求看起来类似于jQuery $.ajax
,(它确实如此),这里有一些东西可以帮助您入门。
所以如果你要使用$.ajax
(这是一个常规的jQuery函数),你可以这样做。
$.ajax({
url:"url.php",
data:data,
success:function(return_data){
if(return_data == "Your custom error from server"){
// do something
}
}
});
以下是你如何在你的情况下做到这一点(我自己没有使用过uploadify)
我不知道file
,data
和response
的内容,但它应该相似。
'onUploadSuccess' : function(file, data, response) {
console.log(file+" ----- "+data+" ----- "+response);
if(data == "Your error?"){
somefunction();
}
if(response == "Your error?"){
somefunction();
}
}