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

  • Ordetta Price

    Ordetta Pric

    12 EYLÜL 2011
  • TheDroidDemos

    TheDroidDemo

    15 ŞUBAT 2011
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006