gpt4 book ai didi

python - Django 的多文件上传代码

转载 作者:行者123 更新时间:2023-12-01 04:41:56 25 4
gpt4 key购买 nike

好的。因此,在搜索了很多论坛和 Stackoverflow 中的其他帖子后,我想出了以下代码。首先,我尝试使用 request.FILES.get('onefile') 但无论我在上传过程中选择了多少个文件,它都只上传了一个文件。因此,我对代码进行了一些更改,以上传名称为 file1、file2 等的文件。以下是我的代码,但我不知道为什么这不起作用。当前未上传任何文件,并且显示以下代码下列出的错误。

upload2.html

<!DOCTYPE html>

<html>

<head>
</head>

<body>
<form method="post" action="/index/multi/" enctype="multipart/form-data"> {% csrf_token %}
<input type="file" name="onefile" multiple>

<input type="submit" value="Upload">
</form>
</body>

</html>

views.py

from django.shortcuts import render
from django.http import HttpResponse

def upload2(request):
return render(request, "upload2.html", {})

def multi(request):
count = 1
for x in request.FILES.getlist('onefile'):
print request.FILES.getlist('onefile')
def handle_uploaded_file(f):
with open('/home/michel/django/upload/media/file' + count, 'wb+') as destination:
for chunk in f.chunks():
destination.write(chunk)
handle_uploaded_file(x)
count = count + 1
return HttpResponse('Uploaded!')

urls.py

from django.conf.urls import url

from index import views

urlpatterns = [
url(r'^upload2/$', views.upload2),
url(r'^multi/$', views.multi),
]

错误

TypeError at /index/multi/
cannot concatenate 'str' and 'int' objects
Request Method: POST
Request URL: http://localhost:8000/index/multi/
Django Version: 1.8.1
Exception Type: TypeError
Exception Value:
cannot concatenate 'str' and 'int' objects
Exception Location: /home/michel/django/upload/index/views.py in handle_uploaded_file, line 32

我不确定我是否错过了什么。如果您还需要什么,请告诉我。提前致谢!

最佳答案

I'm not sure whether I've missed something.

是:读取错误消息 - 告诉您错误是什么 - 回溯 - 告诉您错误发生的位置 - 然后重新读取代码。所以你有:

Exception Type: TypeError Exception Value:
cannot concatenate 'str' and 'int' objects

这意味着您尝试连接一个字符串和一个整数(Python 出于非常明显的原因不允许这样做)。

Exception Location: /home/michel/django/upload/index/views.py in handle_uploaded_file, line 32

这意味着错误位于/home/michel/django/upload/index/views.py 的第 32 行。

/home/michel/django/upload/index/views.py 的第 32 行是:

with open('/home/michel/django/upload/media/file' + count, 'wb+') as destination:

显然,'/home/michel/django/upload/media/file' + count 是罪魁祸首。现在您只需解决这个问题,要么制作一个 count 字符串,要么使用字符串格式化 - 两者都在 FineManual(tm) 中进行了解释。

当您阅读时,您可能还想了解内置 enumate(sequence) 函数。

关于python - Django 的多文件上传代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30459188/

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