Uploadify 3 - 将upload.php中的自定义错误发送回客户端

时间:2014-06-12 15:54:08

标签: php jquery uploadify

我试图通过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 /成功...

1 个答案:

答案 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)

我不知道filedataresponse的内容,但它应该相似。

'onUploadSuccess' : function(file, data, response) {
   console.log(file+" ----- "+data+" ----- "+response);
   if(data == "Your error?"){
     somefunction();
   }

   if(response == "Your error?"){
     somefunction();
    }

 }