swfupload 服务器端输出错误信息

swfupload 上传到服务器后,对任何非 200 的响应都认为是错误,会调用 upload_error_handler 回调。但是在回调里取不到服务器端输出的错误信息,只能得到响应码。

要在 swfupload 处理服务器的错误信息,只能通过 upload_success_handler 。也就是说,不管上传成功失败,都必须是 200 响应。然后输出不同的正文。比如,成功不输出内容,失败时输出错误信息。然后在 upload_success_handler 中通过 serverData 参数来判断。

function uploadSuccess(file, serverData) {
    try {
        var progress = new FileProgress(file, this.customSettings.progressTarget);
        progress.setComplete();
        if (/^s*$/.test(serverData)) {
            progress.setStatus("ok");
        } else {
            progress.setStatus(serverData);
        }
        progress.toggleCancel(false);
    } catch (ex) {
        this.debug(ex);
    }
}

3 thoughts on “swfupload 服务器端输出错误信息

  1. 三枪 October 16, 2011 / 9:26 pm

    下次看到一定记得了!

  2. trooman July 8, 2010 / 1:25 pm

    怎么不能匿名提交了?
    呵呵,曾经就这样做,但是对于大文件,如果有错误,也要等文件传完才能显示的,所以这样做还不是很好的解决办法。
    我目前的办法是用session传递错误,在 uploadProgress()中用ajax监测错误信息,每3秒监测一次,总共监测5次就停止监测,总共监测时间即为15秒,如果监测到错误就终止上传,清空队列,然后在uploadComplete()中可获取错误信息。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s