Django实现文件的上传
2024-09-26 00:20:48
Django实现文件的上传
1、前端页面:使用file对象,读取文件对象传递到views中。需要设定enctype="multipart/form-data",表明不对字符进行编码。
<body>
<form method="POST" action="." enctype="multipart/form-data">
<p align="center">
<span> 请选择docx文件,默认是xx.docx:</span>
<input type="file" name="docxfile"/>
<input type="submit" value="提交"/>
</p>
</body>
2、在views.py中的处理函数,使用chunks()方法
def file_upload(request): # 选择docx文件,并显示在页面
if request.method == "GET":
return render(request, 'file_upload.html')
elif request.method == "POST":
obj = request.FILES.get('filename')#FILES的对象
if obj:
#print(obj, obj.name)
file_path = os.path.join('upload', obj.name) #上传文件的路径+文件名
f = open(file_path, mode="wb") #打开文件对象
for i in obj.chunks(): #使用chunks()方法读取数据,写入文件
f.write(i)
f.close()
else:
file_path = os.path.join('upload', 'xxxxxx.docx')#默认文件
file_str = read_docxfile(file_path)#读取docx文件,传到前端页面显示
return render(request, 'file_upload.html', {'file_str': file_str})
最新文章
- Redis的三种启动方式
- 高性能 Windows Socket 组件 HP-Socket v2.3.1-beta-2 发布
- [转]listview加载性能优化ViewHolder
- strlen和sizeof
- 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件
- SQL Server 2012 BI 学习 第一天
- HTML5元素拖拽实现示例
- call_user_func_array
- PHP扩展memcache模
- 谈论高并发(十二)分析java.util.concurrent.atomic.AtomicStampedReference看看如何解决源代码CAS的ABA问题
- htop命令使用详解
- Linux Vim查找字符串
- laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案)
- Hessian序列化的一个潜在问题
- 手机连接WiFi有感叹号x怎么回事?如何消除手机WiFi感叹号?
- xcode9上传app时报错iTunes Store operation failed 解决方案
- Unity 中几点注意的地方
- 20155319 2016-2017-2 《Java程序设计》第5周学习总结
- POJ 3356 水LCS
- 在Terminal中的光标的使用技巧