SORU
3 Temmuz 2013, ÇARŞAMBA


maxFileSize ve blueimp içinde acceptFileTypes upload eklentisi çalışmıyor dosya. Neden?

Blueimp jQuery dosya upload dosya upload Eklentisi için kullanıyorum.

Yüklüyorum ama maxFileSize acceptFileTypes çalışmıyor seçeneği hiçbir sorun yaşamadım.

Bu benim kod:

$(document).ready(function () {
    'use strict';

    $('#fileupload').fileupload({
        dataType: 'json',
        autoUpload: false,
        acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
        maxFileSize: 5000000,
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p style="color: green;">'   file.name   '<i class="elusive-ok" style="padding-left:10px;"/> - Type: '   file.type   ' - Size: '   file.size   ' byte</p>')
                    .appendTo('#div_files');
            });
        },
        fail: function (e, data) {
            $.each(data.messages, function (index, error) {
                $('<p style="color: red;">Upload file error: '   error   '<i class="elusive-remove" style="padding-left:10px;"/></p>')
                    .appendTo('#div_files');
            });
        },
        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);

            $('#progress .bar').css('width', progress   '%');
        }
    });
});

CEVAP
14 Temmuz 2013, Pazar


Aynı sorun, ve adam diyor blueimp "maxFileSize and acceptFileTypes are only supported by the UI version" ve (bozuk) bir bağlantı _validate ve _hasError dahil sağlamıştır yöntemleri vardı.

Yani senaryoyu bozmadan bu yöntemleri birleştirmek için nasıl bilmeden bu küçük bir fonksiyon yazdım. Benim için iş gibi görünüyor.

Ekleyin bu sadece

add: function(e, data) {
        var uploadErrors = [];
        var acceptFileTypes = /^image\/(gif|jpe?g|png)$/i;
        if(data.originalFiles[0]['type'].length && !acceptFileTypes.test(data.originalFiles[0]['type'])) {
            uploadErrors.push('Not an accepted file type');
        }
        if(data.originalFiles[0]['size'].length && data.originalFiles[0]['size'] > 5000000) {
            uploadErrors.push('Filesize is too big');
        }
        if(uploadErrors.length > 0) {
            alert(uploadErrors.join("\n"));
        } else {
            data.submit();
        }
},

en başında .kodunuz burada görüldüğü gibi fileupload seçenekleri

$(document).ready(function () {
    'use strict';

    $('#fileupload').fileupload({
        add: function(e, data) {
                var uploadErrors = [];
                var acceptFileTypes = /^image\/(gif|jpe?g|png)$/i;
                if(data.originalFiles[0]['type'].length && !acceptFileTypes.test(data.originalFiles[0]['type'])) {
                    uploadErrors.push('Not an accepted file type');
                }
                if(data.originalFiles[0]['size'].length && data.originalFiles[0]['size'] > 5000000) {
                    uploadErrors.push('Filesize is too big');
                }
                if(uploadErrors.length > 0) {
                    alert(uploadErrors.join("\n"));
                } else {
                    data.submit();
                }
        },
        dataType: 'json',
        autoUpload: false,
        // acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
        // maxFileSize: 5000000,
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p style="color: green;">'   file.name   '<i class="elusive-ok" style="padding-left:10px;"/> - Type: '   file.type   ' - Size: '   file.size   ' byte</p>')
                .appendTo('#div_files');
            });
        },
        fail: function (e, data) {
            $.each(data.messages, function (index, error) {
                $('<p style="color: red;">Upload file error: '   error   '<i class="elusive-remove" style="padding-left:10px;"/></p>')
                .appendTo('#div_files');
            });
        },
        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);

            $('#progress .bar').css('width', progress   '%');
        }
    });
});

Bu da sadece UI sürümünde çalışmaz çünkü filesize bir işlevi de ekledim fark edeceksiniz.

Son sorun @dengesiz önerdiği almak için güncellendi: data.originalFiles[0]['type'].length data.originalFiles[0]['size'].length sorgu var ve ilk hatalar için test etmeden önce boş olmadığından emin olmak için Ekledi. Eğer yok olursa, hata gösterilir ve sadece sunucu tarafında bir hata test üzerinde bağımlı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ELawshea

    ELawshea

    26 Mayıs 2008
  • Random Act of Kindness Video Contest

    Random Act o

    18 EYLÜL 2012
  • The Platform

    The Platform

    14 HAZİRAN 2006