gpt4 book ai didi

python - 尝试上传文件时“无法更改上传处理程序”

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:22 25 4
gpt4 key购买 nike

我正在尝试使用 Django 中的 uploadhandler 上传文件。但它返回错误:

You cannot alter upload handlers after the upload has been processed

代码:

def upload_form(request):
if request.method == 'POST':
outPath = '/opt/workspace/jup2/juppro/uploads/23232'
if not os.path.exists(outPath):
os.makedirs(outPath)
request.upload_handlers.insert(0, ProgressUploadHandler(request, outPath)) # place our custom upload in first position
upload_file = request.FILES.get('file', None) # start the upload
return HttpResponse("uploaded ok")

这段代码有什么问题?

最佳答案

您必须在开始上传之前定义上传处理器。在你可以访问 request.POST 的那一刻,文件已经上传到内存或临时文件中。这使得定义上传处理程序毫无意义,因为上传已经完成。

Django 文档非常清楚何时定义自定义上传处理程序:“您只能在访问 request.POST 或 request.FILES 之前修改上传处理程序——在上传处理已经开始后更改上传处理程序没有意义”在不了解您的代码的情况下,我只能猜测,但我认为将您的代码修改为以下内容应该足够了:

def upload_form(request):
outPath = '/opt/workspace/jup2/juppro/uploads/23232'
if not os.path.exists(outPath):
os.makedirs(outPath)
request.upload_handlers.insert(0, ProgressUploadHandler(request, outPath)) # place our custom upload in first position

if request.method == 'POST':
upload_file = request.FILES.get('file', None) # start the upload
return HttpResponse("uploaded ok")

关于python - 尝试上传文件时“无法更改上传处理程序”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com