0

我正在使用 Knockout 编写应用程序。我希望用户浏览文件,然后我想将文件名传递给服务器。但是,由于浏览器安全问题,文件的路径始终为 c:\fakepath。

有没有人可以将文件名获取到服务器以便它可以获取文件并上传它?我想使用服务器上传文件的原因是因为我使用 Amazon S3 存储文件并且我希望服务器进行连接。

这是我的绑定:

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

1 回答 1

0

Knockout 没有文件绑定。要么以老式的方式提交文件,要么查看jQuery File Upload之类的 ajax 文件。

如果你选择。要在模板中使用 ajax,请确保表单包装是文件元素是多部分编码 (enctype="multipart/form-data"),然后您可以添加自定义绑定。

我通常使用这个:模板

<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 回答