Knockout将文件名传递给服务器

时间:2013-08-12 22:48:32

标签: file-upload knockout.js

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

有没有人能够将文件名提供给服务器,以便获取文件并上传?我想使用服务器上传文件的原因是我使用Amazon S3存储文件,我希望服务器进行连接。

这是我的约束力:

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

1 个答案:

答案 0 :(得分:0)

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

如果您选择。要在模板中使用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) {                  
            }
        });
    }
};