2011-05-30 9 views
5

Mi piacerebbe generare un file di testo in javascript in modo dinamico, quindi offrire questo per il download. Attualmente posso ottenere questo lavoro ad un grado, con una delle seguenti soluzioni:Come posso generare un file e offrirlo per il download in formato javascript?

content = "abc123"; 
document.location = "data:text/octet-stream," + encodeURIComponent(content); 

O

content = "abc123";  
var bb = new BlobBuilder(); 
bb.append(content); 
var blob = bb.getBlob(); 
blob = blob.slice(0, blob.size, 'text/octet-stream'); 
var fr = new FileReader(); 
fr.onload = function() {document.location = this.result;} 
fr.readAsDataURL(blob); 

Tuttavia, entrambe queste soluzioni, quando viene visualizzata la finestra di download, offrirò solo un nome di file predefinito di 'download' nel salvataggio come dialogo.

La mia domanda è sostanzialmente, come posso cambiare questo per un nome di file specifici, ad esempio 'readme.txt' o 'scene.obj'

Si noti inoltre il tipo di dati in precedenza era 'text/plain' se questo viene utilizzato, il documento passa al nuovo documento di testo anziché offrirlo per il download (come sembra fare testo/flusso di ottetti).

Non voglio una soluzione flash, javascript/html5 solo suggerimenti per favore.

Cheers, Josh

+0

possibili duplicato di [C'è un modo per specificare un nome file suggerito quando si usano i dati: URI?] (http://stackoverflow.com/questions/283956/is-there-any-way-to-specify-a-suggested-filename- when-using-data-uri) –

+0

Questo sembra essere un duplicato del link suggerito, non è sicuro del motivo per cui non l'ho trovato quando ho cercato. Le persone che desiderano una risposta a questa domanda dovrebbero seguire il link. –

risposta

4

Per questo, si dovrà utilizzare FileSaver da FileAPI: specifica Writer. Per ora, è solo una bozza e in base allo mailing list answer non è ancora stata implementata nei browser.

È possibile guardare ad esempio su un chromium issue per arrivare up-to-date informazioni sullo stato di avanzamento dell'attuazione

UPD 2013/08/02: allora ho trovato una project che fornisce l'interfaccia FileSaver usando trucchetti

+1

IE10 include msSaveOrOpenBlob e msSaveBlob. Sono due metodi disponibili in IE10 che consentono ai siti di chiedere all'utente di salvare un blob sul proprio computer. Ulteriori informazioni su http://blogs.msdn.com/b/ie/archive/2012/01/27/creating-files-through-blobbuilder.aspx – Alexander

0

penso che si dovrebbe verificare: jQuery Table to CSV export

+0

Queste soluzioni sembrano dipendere dallo scripting lato server, sto cercando di attenermi al lato client. Grazie comunque per il suggerimento. –

Problemi correlati