2012-09-06 7 views
20

Ich verwende für mein nächstes Projekt mit Codeigniter. Kann mir jemand sagen, wie erreiche ich die folgende:Einschränken von Dateitypen in JQuery Datei-Upload-Demo

  • Upload-Dateitypen Beschränken
  • Beschränken Dateigröße
  • Löschen der Liste der hochgeladenen Dateien (JQuery-Datei-Upload-Plugin zeigt die Liste in .zip und .rar von bereits hochgeladenen Dateien)

Hilfe geschätzt !!

+1

Stellen Sie sicher, dass Sie alle diese Einschränkungen/Validierungen auch serverseitig durchführen. –

Antwort

-2

versuchen auf dieser Linie suchen:

process: [ 
      /* 
       { 
        action: 'load', 
        fileTypes: /^image\/(gif|jpeg|png)$/, 
        maxFileSize: 20000000 // 20MB 
       }, 
       { 
        action: 'resize', 
        maxWidth: 1920, 
        maxHeight: 1200, 
        minWidth: 800, 
        minHeight: 600 
       }, 

in jquery.fileupload-fp.js

3

Nach der offiziellen Dokumentation;

$('#file_upload').fileUploadUIX({ 
    maxFileSize: 5000000, // Maximum File Size in Bytes - 5 MB 
    minFileSize: 100000, // Minimum File Size in Bytes - 100 KB 
    acceptFileTypes: /(zip)|(rar)$/i // Allowed File Types 
}); 
4

In jquery.fileupload-ui.js bearbeiten Teil:

$.widget('blueimp.fileupload', $.blueimp.fileupload, { 

    options: { 
     // The maximum allowed file size: 
     maxFileSize: 100000000, 
     // The minimum allowed file size: 
     minFileSize: undefined, 
     // The regular expression for allowed file types, matches 
     // against either file type or file name: 
     acceptFileTypes: /(zip)|(rar)$/i, 
     ---------------------------------------------------------------- 

Um die Liste der hochgeladenen Dateien zu löschen - Entfernen Sie die $ .getJSON Anruf von main.js wenn Sie nicht brauchen, diese Funktionalität.

62

Sie haben wahrscheinlich eine Fülle von Lösungen, aber ich wollte das BASIC-Plugin für den Jquery-Uploader verwenden, dh ohne irgendwelche anderen Skripte. Aus irgendeinem Grund funktionierten die Optionen maxFileSize/fileTypes nicht - aber das ist meistens nein Zweifel an meinem Mangel an Lesen der Dokumentation!

für mich jedenfalls war es so schnell wie Sie folgendermaßen vorgehen:

add: function (e, data) { 
     var goUpload = true; 
     var uploadFile = data.files[0]; 
     if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test(uploadFile.name)) { 
      common.notifyError('You must select an image file only'); 
      goUpload = false; 
     } 
     if (uploadFile.size > 2000000) { // 2mb 
      common.notifyError('Please upload a smaller image, max size is 2 MB'); 
      goUpload = false; 
     } 
     if (goUpload == true) { 
      data.submit(); 
     } 
    }, 

So einfach die ADD-Option, um nur den Bildtypen in der Regex zu ermöglichen und Überprüfung (in meinem Fall), um die Dateigröße ist ein Maximum von 2mb.

Eher einfach, und wieder bin ich sicher, die maxFileSize Optionen funktionieren, nur ich nur mit der Grund Plugin Skript jquery.fileupload.js

EDIT ich in meinem Fall hinzugefügt haben, sollte ich gerade das Hochladen eine Datei (ein Profilbild) also also die data.files [0] .. Sie könnten natürlich die Dateisammlung durchlaufen.

+0

Endlich! Ich habe viel nach einem Beispiel gesucht, das funktioniert hat. Thx :) – william

+0

@william Sie sind willkommen –

+0

Wie würde 'data.submit()' für mehrere Dateien funktionieren? – Hengjie

Verwandte Themen