0

Knockout を使用してアプリケーションを作成しています。ユーザーにファイルを参照してもらい、ファイル名をサーバーに渡したいと思います。ただし、ブラウザのセキュリティ上の問題により、ファイルのパスは常に c:\fakepath です。

ファイルを取得してアップロードできるように、ファイル名をサーバーに取得する方法はありますか? サーバーを使用してファイルをアップロードしたい理由は、Amazon S3 を使用してファイルを保存していて、サーバーに接続してもらいたいからです。

これが私のバインディングです:

<input type="file" name="talkFile" data-bind="value: $root.TalkFile">
4

1 に答える 1

0

Knockout にはファイル バインディングがありません。ファイルを昔ながらの方法で送信するか、ajax ファイルのjQuery File Uploadなどを調べてください。

あなたが選ぶなら。テンプレートで ajax を使用するには、フォームのラッピングが file 要素であることを確認してから、カスタム バインディングを追加できます。

私は通常これを使用します: テンプレート

<input type="file" id="fileupload" name="image" data-bind="fileUpload : '.dropzone' " >

カスタム バインディング

 ko.bindingHandlers.fileUpload = {
    init: function(el, valueAccessor, aba, mod){
        $(el).fileupload({
            dropZone: valueAccessor(), //this would be .dropzone
            url: '/upload/path,
            dataType: 'json',
            done: function (e, data) {                  
            }
        });
    }
};
于 2013-08-13T01:29:39.077 に答える