Django+;ExtJS文件上传(直接从PC和链接)
首先-对不起我的英语。。 我继承了一个相当大的项目,它使用ExtJS并基于Django。。所以我有一个上传表单,它可以正常工作。文件的路径在fileuploadfield(这是ExtJS的xtype字段)中给出,然后由Django获取并保存到DB(它正在转换为需要的视图以存储在base中,但这不是问题所在..) 所以我有这样的smth: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
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(“指向文件的链接”)返回一个普通文件,即它