我在本地目录中使用django上传了一个zip文件。如何解压缩并将其存储在3个不同的文件中?
好的。让我更详细地解释一下我的问题。
def upload(request):
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid():
form.handle(request.FILES['file_obj'])
#form.save() # if a modelform
#form.cleaned_data['user'] = request.user
z = zipfile.ZipFile('file_obj')
for files in z.namelist():
file(files,'wb').write(z.read(files))
z.close()
return render_to_response('uploaded.html', RequestContext(request,{}))
else:
form = UploadForm()
return render_to_response('upload.html', RequestContext(request,{'form': form})
)
这是我的上传表单,应该可以使用。 file_obj包含上传的zip文件。但它没有给出任何输出。
答案 0 :(得分:0)
看起来你实际上并没有打开上传,而是当前目录中名为'file_obj'的文件。你想要更像
的东西z = zipfile.ZipFile(request.FILES['file_obj'])
我也可能错了,但我认为你根本不需要使用form.handle(),至少我从未使用它,但我可能会更正。
另外,你要在这里非常小心,因为你正在写出zipfile中包含的文件名,你知道这些文件名可能是某个地方的绝对路径。你需要非常小心。如果我没有说出来,请注意用户创建的内容,它可能是恶意的。