【问题标题】:Cancel file inprogress file upload via ajaxForm plugin通过 ajaxForm 插件取消文件进行中的文件上传
【发布时间】:2020-03-14 08:46:31
【问题描述】:

我正在使用http://hayageek.com/ajax-file-upload-jquery/ (http://malsup.com/jquery/form/#ajaxForm) 插件通过 ajax 上传文件,这工作正常。 现在我想在上传文件之前设置文件大小限制。 我尝试了下面突出显示的代码,但这根本不会取消文件上传。

$('#fileUpload').ajaxForm({
    beforeSend: function () {
        // File size restriction code
        var fileSize = $('.custom-file-input')[0].files[0].size; // in bytes
        fileSize = (fileSize / 1024) / 1024; // MB
        if (fileSize > 2) {
            $('.progress').hide();
            $('input#file').val('');
            $('.custom-file-label').html('<span class="bar-container">Choose file<span class="bar bar-@Model"></span></span>');
            parent.setError('Please Upload a file upto 250 mb.');                
            return false;
        }
        // File size restriction code
    },
    uploadProgress: function (event, position, total, percentComplete) {
        // some code
    },
    complete: function (xhr) {
        var result = JSON.parse(xhr.responseText);
        // some code
    },
    url: '/Records/UploadSharedDocuement'
});

谁能帮忙

【问题讨论】:

  • var fileSize = $('.custom-file-input')[0].files[0].size; // 在此之后以字节为单位的 console.log 文件大小。你知道尺码了吗?
  • 是的,那部分工作正常...但是返回 false 不会取消文件上传

标签: javascript jquery ajax file-upload


【解决方案1】:

在这样的失败条件下中止 Ajax。

$.ajax({
    url : 'myfile',
    dataType: 'script',
    beforeSend : function(xhr, opts){
        var fileSize = $('.custom-file-input')[0].files[0].size;
        if(fileSize>1024)
        {
            xhr.abort();
        }
    },
    complete: function(){
        console.log('Uploaded');
    }
});

【讨论】:

  • 让我试试这个
  • 乐于助人:)
猜你喜欢
  • 1970-01-01
  • 2014-07-19
  • 2016-01-03
  • 2011-04-02
  • 1970-01-01
  • 2023-04-11
  • 2013-11-20
  • 2012-09-17
  • 2010-12-20
相关资源
最近更新 更多