0

我无法弄清楚如何使用美味派、主干和淘汰赛进行文件/图像上传

[淘汰赛]我不确定输入上的数据绑定是什么,以便我可以上传文件:

// what I have right now
<input type="file" data-bind="value: image"/>

[主干] 我设置了帖子网址,但鉴于上述设置,我的文件只是一个字符串

imageModel.get("image") //gives me a string like C:/image

[tastypie] 上面的模型保存的时候,没有上传文件,FileField 就是一个字符串。它甚至没有经过正常的 upload_to=... django 动态

# in my tastypie resource

class ImageResource(ModelResource):

    image = fields.FileField(attribute="image")
    # ...

我知道这个问题有很多部分,所以如果一个解决方案解决了所有问题,我会感到非常惊讶。但是谁能指出我正确的方向,特别是tastepie的主干(只发送文本)和tastepie到db(不使用upload_to并且没有文件保存)问题?

4

1 回答 1

0

The value binding will only give you the filename in text, if you need the actual file object you need a custom binding, I did one for my project and then used the FileReader html5 objec to stream the file to the server

ko.bindingHandlers.file = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        ko.utils.registerEventHandler(element, "change", function () {
            writeValueToProperty(valueAccessor(), allBindingsAccessor, "file", element.files[0]);
        });
    },
    update: function (element, valueAccessor) {
        if (ko.utils.unwrapObservable(valueAccessor()) == null) {
            element.value = "";
        }
    }
};

http://jsfiddle.net/b85YC/

于 2013-04-29T08:29:08.787 回答