之前作图像处理一直在用form表单做图片数据传输, 个人感觉low到爆炸而且用户体验极差,现在介绍一个一部批量上传图片的小技巧,忘帮助他人的同时也警醒自己在代码的编写时不要只顾着方便,也要考虑代码的健壮性个用户体验度。

异步提交照片需要一个CSS文件和相应jqurey文件。如图:

HTML具体代码如下

<!DOCTYPE html>
{# 加载静态文件 #}
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
{# 引入外链式css #}
<link rel="stylesheet" type="text/css" href="{% static 'css/Huploadify.css' %}"/>
{# 载入js库 #}
<script src="{% static 'js/jquery-1.12.1.min.js' %}"></script>
<script src="{% static 'js/axios.js' %}"></script>
<script src="{% static 'js/jquery.Huploadify.js' %}"></script> <title>异步多上传</title>
</head>
<body>
<center> {# 定义一个上传容器 #}
<div id="upload">上传文件</div> </center>
<script> //定义异步上传对象
let up = $("#upload").Huploadify({
//是否自动上传
auto:false,
//设置文件大小限制
fileSizeLimit:99999999999,
//设置删除延时
removeTimeout:999999999,
//文件类型
filetypeExts:'*.*',
//是否多文件
multi:true,
//是否显示进度条
showUploadedPercent:true,
//是否显示文件大小
showUploadedSize:true,
//请求方式
method:'post',
//请求网址
uploader:'/upload',
//回调方法
onUploadComplete:function(file){
console.log(file.name+'上传成功')
},
//删除文件
onCancel:function(file){
console.log(file.name+'删除成功'); } }); </script> </body>
</html>

后台代码如下

from django.shortcuts import render,redirect
from django.http import HttpResponse,HttpResponseRedirect
#导入试图方法
from django.views import View
import json
import os
#导入本地化文件照片缓存路径
from mymac.settings import UPLOAD_ROOT #定义上传试图类
class UploadTest(View): #定义上传方法
def post(self,request): img = request.FILES.get("file")
print(img)
f = open(os.path.join(UPLOAD_ROOT,'',img.name),'wb') for chunk in img.chunks():
f.write(chunk) f.close() return HttpResponse(json.dumps({'status':'ok'},ensure_ascii=False),content_type='application/json')

settings设置如图

最新文章

  1. asp.net获取服务端和客户端信息
  2. mysql TIMESTAMP 设置为可NULL字段
  3. Python 各进制间的转换(转)
  4. 谈谈主函数main
  5. 将某个Qt4项目升级到Qt5遇到的问题(13条方法)
  6. ios ios7 取消控制拉升
  7. 记XDCTF的misc之旅---base64隐写
  8. 【Luogu3804】【模板】后缀自动机(后缀自动机)
  9. linux系统性能监控--CPU利用率
  10. 数据标记系列——图像分割 &amp; PolygonRNN++(一)
  11. javascript数组方法
  12. oracle 根据一个表生成另一个新表和一个现有表给一个新的表赋值
  13. 2019嘉韦思杯线上初赛writeup
  14. Delphi如何处理在进行大量循环时,导致的应用程序没有响应的情况
  15. maven的父工程中添加子工程
  16. .net下的span和memory
  17. Configure、中间件与ErrorHandlingMiddleware全局异常捕获
  18. 封装继承多态-java面向对象三大特征
  19. WebSocket请求过程分析及实现Web聊天室
  20. vSphereClient向ESXi主机分配许可证

热门文章

  1. Python 执行 mysql 存储过程
  2. nginx 转将http跳转到https
  3. 小tips:JS之break,continue和return这三个语句的用法
  4. css优先级计算规则——权重
  5. Android为TV端助力 转载弩的博客
  6. .net webapi 后台导出excel 申请付款单实例
  7. (网页)angularJs中怎么模拟jQuery中的this?(转)
  8. Python 反射机制之hasattr()、getattr()、setattr() 、delattr()函数
  9. MySQL open_tables和opened_tables
  10. numpy中stack、hstack,vstack,dstack函数功能解释