摒弃FORM表单上传图片,异步批量上传照片

之前作图像处理一直在用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设置如图

原文地址:https://www.cnblogs.com/wjohh/p/10597587.html

时间: 2024-08-24 10:42:44

摒弃FORM表单上传图片,异步批量上传照片的相关文章

fileupload form表单提交(包括文件上传)

需要的jar包:commons-fileupload-1.3.1.jar 示例代码: package com.expai.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import javax.servlet.ServletException; import javax.servlet.http.HttpS

form表单的file文件上传那些事

file API 客户端直接访问用户计算机的文件,2000以前,在表单添加了<input type="file">字段. file API是为給web开发提供安全的方式,以便在客户端更好访问用户的文件,字段的基础上加 了一些直接访问文件信息的接口-files集合.与fileReader类型读取文件的数据. files集合 name: 本地文件的名称 size: 文件的字节大小 type: 字符.文件的MIME类型 lastModifiedDate: 文件上次修改的时间(ch

工作中如何使用ajax提交form表单,包括ajax文件上传

提供一种方法就是利用jquery.form.js,我们是和java对接的后台. 代码如下: <input type="text" id="text1"> <input type="text" id="text2"> <input type="text" id="text3"> <form method="post" encty

form表单系列中文件上传及预览

文件上传及预览 Form提交 Ajax 上传文件 时机: 如果发送的[文件]:->iframe, jQurey(),伪Ajax 预览 import os img_path = os.path.join('static/img', fafafa.name) with open(img.path, 'wb') as f: for item in fafafa.chunks(): f.write(item) function iframeSubmit(){ $('#ifm1').load(functi

form表单那点事儿(上) 基础篇

做为html中最为常见,应用最广泛的标签之一,form常伴随前端左右.了解更深,用的更顺. 目录: 表单属性 表单元素 常识 模拟外观 表单属性 这个表单展示了form表单常用的属性 属性名 属性值 描述 action 一个url地址 指定表单提交到的地址 method `GET` , `POST` 表单将以此种方法提交到服务器 target `_self` 当前页面 `_blank` 每次在新窗口打开 `blank` 每次在同一个新窗口打开 `_parent` 父级frame `_top` 顶

node07---post请求、表单提交、文件上传

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="dopost" method="post" enctype="multipart/fo

利用iframe+from表单实现跨域上传文件

一.需要的材料 客户端需要一个HTML页面A其中包含一个iframe和一个form表单,一个页面B(我称之为客户端代理)里面包含对返回参数的处理: 服务端需要一个asp.net的一般处理程序用来处理上传文件并返回值. 二.原理图 有图才有真相,哈哈哈 三.客户端代码实现 1.页面A的实现 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>A页面</ti

jquery mobile 表单提交 图片/文件 上传

jquerymobile 下面 form 表单提交 和普通html没区别,最主要是 <form 要加一个 data-ajax='false' 否则 上传会失败 1  html代码 <!doctype html><html><head>    <meta name="viewport" content="width=device-width, initial-scale=1" charset="UTF-8&qu

使用jQuery重用form表单并异步提交到其他action

在做页面开发的时候,有时候要重用表单的数据,并异步请求提交到其他的链接中,这个时候就可以使用jquery去修改表单的action值(记得使用后修改回来),并调用submit方法,当然后台的链接action或者controller方法必须返回值类型为void,否则将发生页面跳转,返回null则显示空白页,无法实现异步调用.另外,这里可以使用另外一个方式提交,将表单序列化,然后用jQuery的ajax提交,不过要对返回的信息进行处理. 直接上代码: (1)jQuery改变form属性 $(".exp