2012-08-03 15 views
13

これは前に尋ねられましたが、Meteor.httpが利用可能になって以来何もありません。私はまだMeteorの概念を把握しており、ファイルのアップロードは完全に私を逃しています。流星ファイルのアップロード

ここに私の質問です:
だから、私は右の方法であると信じるものの中に、あなたはURLのために何を置くか
Meteor.http.call("POST", url, [options], [asyncCallback])
?流星のクライアント/サーバーのJavaScriptの関係では、本当にそれほど多くのURLを使用しているようには見えません。

誰でも流星でファイルアップロードの基本的な例を持っている場合、それはちょうど余分な素晴らしいだろう。

答えて

4

filepicker.ioをご覧ください。彼らは、アップロードを処理し、あなたのS3に格納し、あなたのDBにダンプすることができるURLをあなたに返します。

  1. クライアントのフォルダにfilepickerスクリプトを書き込んでください。

    wget https://api.filepicker.io/v0/filepicker.js 
    
  2. filepicker入力タグ

    スタートアップで
    <input type="filepicker" id="attachment"> 
    
  3. を挿入し、それを初期化:

    Meteor.startup(function() { 
        filepicker.setKey("YOUR FILEPICKER API KEY"); 
        filepicker.constructWidget(document.getElementById('attachment')); 
    }); 
    
  4. は、イベントハンドラをアタッチ

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

(私はHow would one handle a file upload with Meteor?に投稿しました。私はここで新しいです。それは同じ答えを2回コピーすることは正直ですか?よりよく知っている人は誰でもこれを編集することができます)

+1

その間、[filepickerは流星パッケージです](https://atmosphere.meteor.com/package/filepicker)on雰囲気。 –

-1

メテオにはデフォルトでJQueryが含まれているので、そのためにJqueryプラグインを利用することができます。https://github.com/blueimp/jQuery-File-Upload/wiki/Optionsはあなたのためのトリックを行うことができ、GETとPUTの両方をサポートします。

そうでなければ、流星の中のPUTにアクセスできるので、それを動作させるのはお尻の痛みですが、不可能ではありません。

あなたは多分あなたが見ることができ、より純粋なJSのsollutionを希望した場合:http://igstan.ro/posts/2009-01-11-ajax-file-upload-with-pure-javascript.html

そして、それを適応させます。

ファイルアップロードの準備ができていないので、あなたが思いついたことを共有してください、私は非常に興味があります!

+3

jqueryはフロントエンドにありますが、XHRのダウンロードストリームを処理するにはまだ何かが必要です(流星で) –

6

よく流星で少し演奏されています。流石とgridFSを混在させたcollectionFSを作成しました(互換性があります)。 ここでテストしてください:http://collectionfs.meteor.com/ 大容量のファイル、複数のファイル、ユーザーなどを終了することができます。接続が失われたり、ブラウザが死んでしまうと、アップロードを再開することができます。 複数のユーザーが同じファイルにアップロードできるようにする必要があります。使用するファイルが見つからない場合もありますが、可能です。 アカウント、公開などコレクションと同じです。テストは自動公開モードですが、メタデータだけが使用できます。データのまとまりは、ブロブを介してバックグラウンドで提供されます。

私は

-1

また(あなたがfilepickerのようなサードパーティのソリューションを使用したくない場合)あなたがmeteor routerパッケージを使用することができ、githubの上でそれを取得してみます。

これは、サーバー側でHTTP要求を処理します。

1

いくつか検索した後、クライアント上

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

を、この使用して、サーバー上のMeteor.MethodとFileReaderをのAPIを達成するためにどのようにチェックアウトは、これは私の最も簡単な(そして一瞬のため流星のスタイルに見えます余分な依存関係がなくてもファイルアップロードを処理することができます。