django 上传文件(图片)
2019-03-29 17:09
96 查看
-
使用
<input type="file" name="file">
上传文件, 而且需要注意form中必须设置enctype="multipart/form-data"才能上传文件,否则上传的内容为None<form name="form1" method="POST" action="/chg_profile/" enctype="multipart/form-data"> {% csrf_token %} <p><span> </span><input type="file" name="avatar" text="修改头像"></p> <P><span> </span><button>提交</button> <form>
-
在后台使用f = request.FILES.get(“avatar”) 获取文件对象,(这里的文件是头像avatar,所以get的参数为input的name “avatar”) 使用f.name获取文件名称. 然后使用open函数把文件写入到正确的文件夹下:
sbmt_avatar = request.FILES.get('avatar') avatar_suffix = sbmt_avatar.name.split(".")[-1] #获取后缀 import os avatar_path = "static/avatar/"+sbmt_username+ "." +avatar_suffix # 构造文件路径 with open(os.path.join(BASE_DIR, avatar_path), "wb") as f: for line in sbmt_avatar: f.write(line) 因为模板文件和static文件没在同一个文件夹下,所以数据库中保存路径时,还要修改成正确的路径../static/avatar/username.png
-
关于
os.path.join(path1,path2,path3....)
结果如下()环境为linux)路径如果是/开头,则前面的路径会被忽略,如果是./(点斜杠)开头,则前面的路径也会加上(如果b为点斜杠b(./b), c为斜杠c(/c),最终结果会以c为标准,即丢掉前面的路径,只返回斜杠c(/c), 反过来,b为斜杠b(/b),c为点斜杠c(./c),则抛弃/b前面的路径,返回/b/./c, 如下)
相关文章推荐
- [Python] Django框架入门5——静态文件、中间件、上传图片和分页
- django 配置上传图片和文件
- django如何给上传的图片重命名(给上传文件重命名)
- 让xadmin后台显示上传的图片,文件----DJANGO Xadmin
- django的文件 图片上传(简单方法)
- Django学习(四)--上传并返回图片文件
- 34)django-上传文件,图片预览功能实现
- django admin上传文件和图片
- Django 批量保存图片文件 自定义上传方法
- django学习——media处理上传图片、文件方法设置
- Django 图片 头像 文件 上传 展示
- django_models_文件上传和图片上传
- Django框架文件上传与自定义图片上传路径、上传文件名操作分析
- django 与 百度 ueditor 富文本编辑器集成之一:图片上传,文件上传
- ASP.NET环境下配置FCKEditor并上传图片及其它文件
- vue项目中如何利用base64上传图片与文件
- iOS上传图片文件到J2EE Servlet保存
- django文件上传和序列化
- iOS开发-使用AFN实现GET/POST请求,以及文件下载/文件(图片)上传
- 终于搞定了 django 的 ajax 方式上传图片