Django+;ExtJS文件上传(直接从PC和链接)

Django+;ExtJS文件上传(直接从PC和链接),django,file-upload,extjs,Django,File Upload,Extjs,首先-对不起我的英语。。 我继承了一个相当大的项目,它使用ExtJS并基于Django。。所以我有一个上传表单,它可以正常工作。文件的路径在fileuploadfield(这是ExtJS的xtype字段)中给出,然后由Django获取并保存到DB(它正在转换为需要的视图以存储在base中,但这不是问题所在..) 所以我有这样的smth: class image(entity): ... def create(self,request): if request.metho

首先-对不起我的英语。。 我继承了一个相当大的项目,它使用ExtJS并基于Django。。所以我有一个上传表单,它可以正常工作。文件的路径在fileuploadfield(这是ExtJS的xtype字段)中给出,然后由Django获取并保存到DB(它正在转换为需要的视图以存储在base中,但这不是问题所在..) 所以我有这样的smth:

class image(entity):
    ...

    def create(self,request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        try:
            parent_id = int(request.POST["parent_id"])
        except:
            return ErrorResponse()
        if form.is_valid():
            fl =  request.FILES['file'];
            file = fl.read()
            Obj = self.data.obj
            New = Obj()

            setattr(New,'is_main',False)
等等。。 所以我需要从一个直接链接上传一个文件。当然是另一个领域。从链接获取文件不是问题(urllib2帮助很大),将文件保存到媒体文件夹也不是问题。但是我不能在上面的代码中插入它。据我所知,我的问题是file对象与request.FILES对象不同。。但我不知道如何将普通文件(在我的情况下,所有文件都是图像)转换为request.files类型,以便下一个函数可以读取。。我的意思是: 我从另一个字段(textfield)捕获指向该文件的链接:

嗯。该文件现在位于/media/文件夹中,但如果我只是尝试替换 file=fl.read()和file=f.read()不起作用。据我所知,request.FILES和just a file是不同的。。有人能帮我把文件转换成需要的类型吗?或者告诉我这个想法是怎么实现的。。这个项目真的很大,如果我尝试改变提交机制,可能会导致很多问题。。
再次为我的英语感到抱歉)

我真的不明白为什么它不起作用,但我发现这对我来说很有效

            url = request.POST['file_link']
            name = urllib2.urlopen(url).read()
            file = name
            ..

urllib2.urlopen(“指向文件的链接”)返回一个普通文件,就是这样。

我真的不明白为什么它不起作用,但我发现这对我来说是有效的

            url = request.POST['file_link']
            name = urllib2.urlopen(url).read()
            file = name
            ..
urllib2.urlopen(“指向文件的链接”)返回一个普通文件,即它