在Python的Django框架中,从输入文件标签中读取文件通常涉及到处理HTTP请求中的文件上传。这可以通过Django的request.FILES
对象来实现,该对象包含了所有上传的文件。
request.FILES
:在Django视图中,这个对象包含了所有上传的文件。enctype="multipart/form-data"
来支持文件上传。以下是一个简单的Django视图示例,展示如何处理文件上传:
# views.py
from django.shortcuts import render
from django.http import HttpResponse
def upload_file(request):
if request.method == 'POST':
uploaded_file = request.FILES['file'] # 获取上传的文件
with open('path/to/save/file/' + uploaded_file.name, 'wb+') as destination:
for chunk in uploaded_file.chunks():
destination.write(chunk)
return HttpResponse("File uploaded successfully")
else:
return render(request, 'upload.html')
对应的HTML表单:
<!-- upload.html -->
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
settings.py
中调整:# settings.py
DATA_UPLOAD_MAX_MEMORY_SIZE = 10 * 1024 * 1024 # 10MB
FILE_UPLOAD_MAX_MEMORY_SIZE = 10 * 1024 * 1024 # 10MB
python-magic
来检测文件类型。请注意,处理文件上传时应始终考虑安全性,避免潜在的安全风险,如文件覆盖、目录遍历攻击等。
领取专属 10元无门槛券
手把手带您无忧上云