django 通过bootstrap fileinput 上传图片
2017-02-07 17:09
579 查看
django 通过bootstrap fileinput 上传图片
实现在django框架下,通过bootstrap前端框架的fileinput控件上传图片django 1.10.3
bootstrap
1.在app目录下创建图片文件夹
我的项目名称为myproject,我的app名称为myapp,创建的图片存放文件名称为uploadfiles目录结构如下:
|–myproject
–|–myapp
—–|–urls.py
—–|–uploadfiles
—–|–settings
——–|–dev.py [配置文件]
2.配置文件
在配置文件dev.py中,新增如下代码:import os PROJECT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir)) ...... # 放置上传的图片 UPLOADFILES = os.path.join(PROJECT_DIR, 'uploadfiles')
3.具体实现
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import time from PIL import ImageFile from myproject.settings import dev from django.http import JsonResponse, HttpResponse def _upload(file, path): """ 图片上传函数 """ if file: _n = "%d" % (time.time() * 1000) _f = time.strftime("%Y%m%d", time.localtime()) file_name = _f + _n+".jpg" path_file = os.path.join(path, file_name) parser = ImageFile.Parser() for chunk in file.chunks(): parser.feed(chunk) img = parser.close() try: if img.mode != "RGB": img = img.convert("RGB") img.save(path_file, 'jpeg', quality=100) except: return None return file_name return None def uploadify_script(request): """ 通过bootstrap fileinput 上传图片 """ result = {"data": []} path = os.path.join(dev.UPLOADFILES) try: response = HttpResponse() response['Content-Type'] = "text/javascript" ret = -1 file = request.FILES.get("file_data", None) if file: imgurl = _upload(file, path) if not imgurl: ret = 1 ret = 0 result["imgurl"] = imgurl result.update(code_msg(ret)) return JsonResponse(result) except Exception: return JsonResponse(result)
4.配置路由
在urls.py文件中增:from django.conf.urls.static import static from ktv_project.common import uploadimg from ktv_project.settings.dev import UPLOADFILES ...... """ 上传 图片 """ urlpatterns += [ url(r'^uploadfiles$', uploadimg.uploadify_script), ] """ 显示 图片 """ urlpatterns += static('/uploadfiles/', document_root=UPLOADFILES) """
5.前端代码(仅供参考)
JS:<script> var res_licenseImg; $("#file_licenseImg").fileinput({ language: 'zh', uploadUrl: urlQJ+'/uploadfiles', allowedFileExtensions : ['jpg', 'png'], maxFileSize: 5000, maxFilesNum: 1, showCaption: false, showUpload: false, slugCallback: function(filename) { return filename.replace('(', '_').replace(']', '_'); } }); $('#file_licenseImg').on('fileuploaded', function(event, data, previewId, index){ res_licenseImg = data.response.imgurl; // console.log(res_licenseImg); if(res_licenseImg){ $('.imgReg').css('display', 'inline') $('#file_licenseImg').css('display', 'none'); $('.btn-file').css('display', 'none'); } $('.fileinput-remove').click(function(){ $('#file_licenseImg').css('display', 'inline-block'); $('.btn-file').css('display', 'inline-block'); }) }) </script>
HTML:
<div class="col-sm-8" style="position:relative"> <input id="file_licenseImg" type="file" class="file" > <i class="fa fa-check regII imgReg" style="display:none"></i> </div>
相关文章推荐
- Bootstrap中的fileinput 多图片上传及编辑功能
- Bootstrap框架---krajee插件fileinput--最好用的文件上传组件----单多张图片上传交互方式三(推荐)
- 使用bootstrap图片上传插件(fileInput)springmvc实现图片上传全流程
- bootstrap fileinput 上传图片
- bootstrap-fileinput 图片上传
- 【Bootstrap】 fileinput:文件or图片上传
- bootstrapfileinput上传图片
- bootstrap fileinput 组件整合SpringMVC上传图片到本地磁盘
- Bootstrap fileinput的图片上传 java框架基于springMVC
- bootstrap 上传图片插件 file-input 的简单使用
- bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
- Django 上传文件(bootstrap file input插件) 中文乱码 解决 (python3)
- 解决BootStrap Fileinput手机图片上传显示旋转问题
- bootstrap fileinput之手机图片上传显示旋转问题
- bootstrap 文件上传插件 fileinput.min.js 可以预览图片
- bootstrap 上传图片插件 file-input 的简单使用
- bootstrap-fileinput,多图片上传踩过的坑
- Bootstrap fileinput 上传Excel附带图片展示
- 通过input 的file 控件,上传图片,如何获取文件的大小问题
- Bootstrap FileInput插件上传图片和文件