2012-08-03 9 views
13

Veo que esto se ha preguntado aquí antes, pero nada desde Meteor.http ha estado disponible. Sigo captando los conceptos de Meteor y las cargas de archivos me están eludiendo por completo.Meteor File Uploads

Aquí está mi pregunta:
Así, en lo que yo creo que es el método correcto,
Meteor.http.call("POST", url, [options], [asyncCallback])
lo pones para el url? Con la relación javascript cliente/servidor en meteoro, no parece que realmente use tanto las URL.

Si alguien tiene un ejemplo básico de una carga de archivos en meteoritos, que acaba de ser más espectaculares.

Respuesta

4

Eche un vistazo a filepicker.io. Manejan la carga, la almacenan en su S3 y le devuelven la url que puede volcar en su db.

  1. Wget el script filepicker en su carpeta de cliente.

    wget https://api.filepicker.io/v0/filepicker.js 
    
  2. insertar una etiqueta de entrada filepicker

    <input type="filepicker" id="attachment"> 
    
  3. En el inicio, inicializarlo:

    Meteor.startup(function() { 
        filepicker.setKey("YOUR FILEPICKER API KEY"); 
        filepicker.constructWidget(document.getElementById('attachment')); 
    }); 
    
  4. Adjuntar un controlador de eventos

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

(Lo había publicado en How would one handle a file upload with Meteor? Lo siento. Soy nuevo aqui. ¿Es kosher copiar la misma respuesta dos veces? Cualquier persona que sepa mejor puede sentirse libre de editar esto.)

+1

Mientras tanto, [filepicker es un paquete de meteoros] (https://atmosphere.meteor.com/package/filepicker) en atmósfera. –

-1

Dado que meteor incluye por defecto a JQuery, puede utilizar un plugin de Jquery para eso, supongo que algo así como: https://github.com/blueimp/jQuery-File-Upload/wiki/Options puede hacer el truco para usted, y es compatible tanto con GET como con PUT.

De lo contrario, sería un dolor en el culo para que funcione, pero no imposible, ya que puede acceder a PUT en meteorito.

Si prefiere un sollution JS más puro tal vez se puede ver en: http://igstan.ro/posts/2009-01-11-ajax-file-upload-with-pure-javascript.html

y adaptarlo.

No hay soporte listo para subir archivos, así que comparta lo que se le ocurra, ¡estaría muy interesado!

+3

jquery está en la interfaz, todavía necesita algo (en el meteoro) para procesar flujos de descarga XHR –

6

bien estado jugando un poco con meteoro. Hizo una collectionFS una mezcla de meteoro y gridFS (podría ser compatible). Pruébelo aquí: http://collectionfs.meteor.com/ Es compatible con archivos de gran tamaño, múltiples archivos, usuarios, etc. He probado que 50Mb parece estar bien, si se pierde la conexión o el navegador muere, el usuario puede reanudar la carga. Incluso debería ser posible que varios usuarios suban al mismo archivo exacto; no han dejado de encontrar un uso para él, pero es posible. Cuentas, publicación, etc.es como con las colecciones: la prueba está en modo autopublish, aunque solo se dispone de metadatos; los fragmentos de datos se sirven en segundo plano a través de blobs.

Voy a tratar de conseguir que en github,

-1

Alternativamente (si no desea utilizar una solución de 3 ª parte como filepicker) se puede usar el paquete meteor router.

Esto maneja las solicitudes HTTP en el lado del servidor.

1

Pedido cómo lograr esto usando Meteor.Method en el servidor y API del FileReader en el cliente

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

Después de varias búsquedas, esto parece a mí el (y por el momento el estilo del meteoro más fácil manera) para manejar una carga de archivos sin dependencias adicionales.

Cuestiones relacionadas