django上传多个文件
时间: 2023-10-28 17:03:22 浏览: 92
在Django中,可以通过使用`MultiValueDict`对象处理上传多个文件。以下是一个简单的示例代码:
首先,在你的HTML模板中,添加一个`<input>`元素,并设置`multiple`属性,这样用户就可以选择多个文件进行上传:
```html
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="files" multiple>
<button type="submit">上传</button>
</form>
```
接下来,在你的视图函数中,可以通过`request.FILES.getlist('files')`来获取用户上传的多个文件:
```python
from django.shortcuts import render
def upload_files(request):
if request.method == 'POST':
files = request.FILES.getlist('files') # 获取多个上传的文件
for file in files:
# 处理每个上传的文件,可以保存到本地或存储到数据库等
with open(file.name, 'wb') as f:
for chunk in file.chunks():
f.write(chunk)
return render(request, 'success.html')
return render(request, 'upload.html')
```
在这个例子中,我们使用了`open()`函数来打开每个上传的文件,并使用`write()`方法将文件内容写入磁盘。当然,你可以根据自己的需求,对上传的文件进行不同的处理。
最后,你可以在模板中创建一个`success.html`页面,用来展示上传成功的信息。
以上就是使用Django上传多个文件的基本步骤。记得在视图函数中设置正确的URL路由,以便用户能够访问上传页面。