使用Django Views上传文件

时间:2013-03-13 13:28:56

标签: python django

我正在研究一个Django应用程序的功能,该功能将文件(我的上下文中的图像)上传到服务器。一切都工作正常,但我想知道我如何接收上传文件路径作为回调。

这是我的观点:

def post(self, request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['uploadedFile'])
            return redirect('/')
    else:
        form = UploadFileForm()
    return render_to_response('index.html', {'form': form})

我的表格:

class UploadFileForm(forms.Form):
    uploadedFile = forms.FileField()

我的经纪人:

def handle_uploaded_file(source):
    fd, filepath = tempfile.mkstemp(prefix=source.name, dir=FILE_UPLOAD_DIR)
    with open(filepath, 'wb') as dest:
        shutil.copyfileobj(source, dest)
    return filepath

我知道我的视图中的handle_uploaded_file(request.FILES['uploadedFile'])是我需要的回调函数,但是如何在响应中接收它? 可以接收而不是我的index.html(它仅用于测试目的)图像的路径,以便在前端部分进一步操作。 我可能听起来像一个菜鸟但我真的想要,如果它以某种方式工作。 我的View还有办法处理多个文件上传吗?我需要在处理程序中更改这些内容吗? 很抱歉提出这么多问题......

1 个答案:

答案 0 :(得分:0)

试试这个:

file_path = handle_uploaded_file(request.FILES['uploadedFile']) 
return render_to_response('index.html', {'form': form, 'file_path': file_path})