javascript - 如何只计算有效的 jquery 文件上传?

标签 javascript jquery image-processing

在使用 jquery file upload 上传多张图片后,我正在尝试刷新我的上传页面.

我目前正在计算添加的文件数量,如果它们与成功上传的数量相匹配,我就会刷新页面。在用户尝试上传无效的文件类型或太小的图像之前,这非常有用。如何将这些故障包括在我的总数中?是否有首选方法来执行此操作?

    $('#fileupload').fileupload({
        acceptFileTypes: /(\.|\/)(jpe?g|png)$/i
    });

    var filesqueued = null; 
    var filesuploaded = 0;

    $('#fileupload').bind('fileuploadadd', function (e, data) {
        filesqueued = data.originalFiles.length;
    });


    $('#fileupload').bind('fileuploaddone', function (e, data) {
        filesuploaded = filesuploaded + 1;

        if (filesuploaded == filesqueued) {
            filesuploaded = 0;
            location.reload();
        }
    })

最佳答案

您可以使用 jQuery 文件上传的内置事件来绑定(bind)成功和失败事件:

$('#fileupload').bind('fileuploadcompleted', function (e, data) {
    /* Successful upload */
        filesuploaded = filesuploaded + 1;
});

$('#fileupload').bind('fileuploadfailed', function (e, data) {
    /* Failed upload */
    // [...]
});

更多信息来自他们的文档:https://github.com/blueimp/jQuery-File-Upload/wiki/Options

或者,您可以在服务器端执行所有操作。让您的上传处理程序(jQuery 文件上传的 url 选项)响应:

<?php
if ( $valid == false ) {
    echo 'invalid';
    // or echo( json_encode( array( 'result' => 'invalid' ) ) );
}

然后回到 jQuery 分析返回的数据:

$('#fileupload').bind('fileuploaddone', function (e, data) {
    /* Check returned data */
    // Could use JSON or simple text output
    // if ( data.result == 'invalid' ) {
    if ( data == 'invalid' ) {
        // file did not pass
    } else {
        // file uploaded fine
        filesuploaded = filesuploaded + 1;
    }

    if (filesuploaded == filesqueued) {
        filesuploaded = 0;
        location.reload();
    }
})

关于javascript - 如何只计算有效的 jquery 文件上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11603960/

相关文章:

javascript - 即使添加了新问题,提交按钮如何始终位于页面下方

ruby - 是否可以使用 RMagick 获得平均图像颜色?

java - Java 中的条形码读取无法正确读取像素

javascript - 我如何使用鼠标悬停禁用 js 功能

javascript - if else 中的 switch 语句有条件,else 未到达

javascript - 什么是正确的 jQuery 插件实践?

jquery - 使用 jQuery 改变不透明度

javascript - 如何更改一个按钮以在使用 jQuery 单击时切换当前/ future 事件?

python - 使用 Surf 和 Perspective Transform 获取图像相对于基本图像的方向

javascript - DragDealer slider javascript 小部件 - 要在页面中嵌入哪些文件?