2015-11-20 18 views
7

Utilizzo il costruttore File() per la creazione di un oggetto file per il caricamento di un file blob sul server, il codice funziona correttamente per Chrome, ma non riesce per Safari e Internet Explorer. Segue la riga di codice:Alternativa per il costruttore File() per safari

image_url = new File([blob],file_name,{type: mimeString}); 

codice sta spezzando in questa linea e questo errore nella console "FileConstructor non è un costruttore (valutazione di 'new File ([blob], nome file, {type: mimeString}) "

L'utilizzo dell'API Filereader è un'alternativa a questo, ma non sono in grado di risolvere questo problema.

L'aiuto sarebbe molto apprezzato. Grazie.

risposta

2

In base al web "Posso usare" Safari non supporta il costruttore new File(). Vedere questo link http://caniuse.com/#feat=fileapi

Quindi penso che si deve usare sia per FileReader o forse utilizzare alcuni dei polyfills elencati qui https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

Soprattutto questo uno potrebbe essere utile per voi https://github.com/mailru/FileAPI (io non lo uso io)

hanno anche uno sguardo a questo SO rispondere What to use instead of FileReader for Safari?

+0

Grazie !! lasciatemi provare queste possibili soluzioni. –

+1

Bene, sto usando la direttiva https://github.com/danialfarid/ng-file-upload, e usando il file shim e ho menzionato il codice come menzionato nella parte di supporto Cross-browser, ma non sono in grado di caricare un file su Safari. –

+0

Segnala errori nella console di sviluppo? –

8

suggerisco di utilizzare l'API blob, ho trovato lo stesso problema e ho risolto così:

var html = <svg>whatever on svg </svg> 
var fileName = "myfile.svg"; 
var blob = new Blob([html], {type: 'image/svg'}); 
blob.lastModifiedDate = new Date(); 
// var blobAttrs = {type: "image/svg"}; 
// var file = new File([html], fileName, blobAttrs); 
var formData = new FormData(); 
formData.append("file",blob,fileName); 

Non è un "file", ma è possibile utilizzarlo come era.

+0

Grazie per aver salvato la giornata! – Jaison