2012-08-03 45 views
13

Vedo che questo è già stato chiesto prima, ma nulla dal Meteor.http è stato disponibile. Sto ancora cogliendo i concetti di Meteor e gli upload di file mi stanno completamente sfuggendo.Caricamenti di file di Meteor

Ecco la mia domanda:
Così, in quello che ritengo essere il metodo giusto,
Meteor.http.call("POST", url, [options], [asyncCallback])
quello che si fa a mettere la URL? Con la relazione javascript client/server in meteora, non sembra che usi realmente gli URL così tanto.

Se qualcuno ha un esempio di base di un caricamento di file in meteora, che sarebbe solo più impressionante.

risposta

4

Dai un'occhiata a filepicker.io. Gestiscono il caricamento, lo memorizzano nel tuo S3 e ti restituiscono l'url che puoi scaricare nel tuo db.

  1. Wget lo script filepicker nella cartella client.

    wget https://api.filepicker.io/v0/filepicker.js 
    
  2. inserire un tag di ingresso filepicker

    <input type="filepicker" id="attachment"> 
    
  3. In avvio, inizializzarlo:

    Meteor.startup(function() { 
        filepicker.setKey("YOUR FILEPICKER API KEY"); 
        filepicker.constructWidget(document.getElementById('attachment')); 
    }); 
    
  4. Collegare un gestore di eventi

    Template.templateNameHere.events({ 
        'change #attachment': function(evt){ 
         console.log(evt.files); 
        } 
    }); 
    

(avevo pubblicato su How would one handle a file upload with Meteor? Siamo spiacenti. Sono nuovo qui. E 'kosher copiare la stessa risposta due volte? Chiunque conosca meglio può sentirsi libero di modificarlo.)

+1

Nel frattempo, [filepicker è un pacchetto di meteore] (https://atmosphere.meteor.com/package/filepicker) su atmosfera. –

-1

Dal meteora comprende JQuery per impostazione predefinita, è possibile utilizzare un plugin per jQuery per questo, credo, qualcosa di simile a: https://github.com/blueimp/jQuery-File-Upload/wiki/Options può fare il trucco per voi, e supporta sia GET e PUT.

Altrimenti sarebbe un rompicoglioni farlo funzionare, ma non impossibile, dal momento che è possibile accedere a PUT in meteora.

Se si preferisce un più puro sollution JS forse si può guardare: http://igstan.ro/posts/2009-01-11-ajax-file-upload-with-pure-javascript.html

e adattarlo.

Non esiste un supporto pronto per il caricamento di file, quindi condividi ciò che ti viene in mente, sarei molto interessato!

+3

jquery è sul frontend, hai ancora bisogno di qualcosa (in meteora) per elaborare i flussi di download XHR –

6

beh, ho giocato un po 'con la meteora. Crea una raccoltaFS un mix di meteore e gridFS (potrebbe essere compatibile). Testalo qui: http://collectionfs.meteor.com/ Supporta la chiusura di file di grandi dimensioni, file multipli, utenti ecc. Ho provato un 50 Mb sembra ok, se la connessione è persa o il browser muore, l'utente può riprendere il caricamento. Dovrebbe anche essere possibile caricare più utenti sullo stesso file esatto - non è stato trovato il caso di usecase, ma è possibile. Conti, pubblicazioni ecc.è come con le collezioni - il test è in modalità autopublish, anche se sono disponibili solo i metadati: blocchi di dati vengono serviti in background tramite BLOB.

Cercherò ottenerlo su GitHub,

-1

alternativa (se non si desidera utilizzare una soluzione di terze parti come filepicker) è possibile utilizzare il pacchetto meteor router.

Questo gestisce le richieste HTTP sul lato server.

1

Checkout come eseguire questa operazione utilizzando Meteor.Method sul server e API del FileReader sul client

https://gist.github.com/dariocravero/3922137

Dopo varie ricerche, questo sembra a me il più facile (e per il momento lo stile del meteorite modo) per gestire un caricamento di file senza dipendenze extra.

Problemi correlati