ajax提交form表单

前端大文件上传解决方案

Deadly 提交于 2020-02-20 05:14:26
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表格数据、上传影音文件等。如果文件体积比较大,或者网络条件不好时,上传的时间会比较长(要传输更多的报文,丢包重传的概率也更大),用户不能刷新页面,只能耐心等待请求完成。 下面从文件上传方式入手,整理大文件上传的思路,并给出了相关实例代码,由于PHP内置了比较方便的文件拆分和拼接方法,因此服务端代码使用PHP进行示例编写。 本文相关示例代码位于github上,主要参考 聊聊大文件上传 大文件切割上传 文件上传的几种方式 首先我们来看看文件上传的几种方式。 普通表单上传 使用PHP来展示常规的表单上传是一个不错的选择。首先构建文件上传的表单,并指定表单的提交内容类型为enctype="multipart/form-data",表明表单需要上传二进制数据。 然后编写index.php上传文件接收代码,使用move_uploaded_file方法即可(php大法好…) form 表单上传大文件时,很容易遇见服务器超时的问题。通过xhr,前端也可以进行异步上传文件的操作,一般由两个思路。 文件编码上传 第一个思路是将文件进行编码,然后在服务端进行解码,之前写过一篇在前端实现图片压缩上传的博客

ajax下载文件

前提是你 提交于 2020-02-18 04:05:13
今天遇到这样一个需求,将查查出来的数据导出来,不是将所有的数据导出来,而是要导出满足条件的数据,也就是说下载的时候要将查询的条件传到后台。 例如: 先查询课程性质是选修的课程然后导出来: 前台封装条件的form: <form class="layui-form layui-col-md12 x-so" id="queryCourseForm"> <%--隐藏两个,一个当前页,一个页号--%> <%--当前页--%> <input type="hidden" name="pageNum"/> <input type="hidden" name="pageSize"/> <div class="layui-input-inline"> <input type="text" name="coursenamecn" placeholder="请输入课程中文名称" autocomplete="off" class="layui-input"> </div> <div class="layui-input-inline"> <select name="courseplatform"> <option value="">请选择课程平台</option> <option value="通识教育">通识教育</option> <option value="学科基础课">学科基础课</option>

用户注册与忘记密码邮箱激活

試著忘記壹切 提交于 2020-02-08 11:26:22
/*--> */ /*--> */ /*--> */ /*--> */ Django Forms 实现用户注册 分析:用户注册的信息包含了一个用户的帐号、密码、邮箱以及一个图片性质的头像。 实现文件上传的相关配置 用户模型的设计models.py class UserInfo(AbstractUser): """继承AbstractUser表并向里加几条数据""" phone = models.CharField(max_length=11, null=True, unique=True, verbose_name="手机号码") avatar = models.FileField(upload_to="media/avatars", default="static/img/touxiang.jpg", verbose_name="头像") create_time = models.DateTimeField(auto_now_add=True, verbose_name="用户角色创建时间") class Meta: verbose_name = "用户" verbose_name_plural = verbose_name <wiz_code_mirror> 9 1 class UserInfo(AbstractUser): 2 ""

JavaScript 表单操作和验证 文件的操作

纵饮孤独 提交于 2020-02-07 09:52:10
<form method="get" action="接口地址"> <input type="text" name="username"> <input type="password" name="passWord"> <input type="submit" name="Submit" value=“提交”> </form> 这段代码就是表单的最基础的写法。method是请求数据的get/post,action是接口。当我们点击了“提交”按钮后,后台会自动获取到所有的表单的name属性以及其对应的值。(我们不需要做任何做操。因为form表单本来就是用来提交数据的)。 再例如: 因此,表单中的元素比如有name属性,用来提交数据,但是submit则不需要 操作表单 用JavaScript操作表单和操作DOM是类似的,因为表单本身也是DOM树。 不过表单的输入框、下拉框等可以接收用户输入,所以用JavaScript来操作表单,可以获得用户输入的内容,或者对一个输入框设置新的内容。 HTML表单的输入控件主要有以下几种: 文本框,对应的 <input type="text"> ,用于输入文本; 口令框,对应的 <input type="password"> ,用于输入口令; 单选框,对应的 <input type="radio"> ,用于选择一项; 复选框,对应的 <input

关于Django的Ajax操作

岁酱吖の 提交于 2020-02-05 06:18:23
一 什么是Ajax AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求; 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。 AJAX除了 异步 的特点外,还有一个就是:浏览器页面 局部刷新 ;(这一特点给用户的感受是在不知不觉中完成请求和响应过程) 场景: 优点: AJAX使用Javascript技术向服务器发送异步请求 AJAX无须刷新整个页面 二 基于jquery的Ajax实现 <button class="send_Ajax">send_Ajax</button> <script> $(".send_Ajax").click(function(){ $.ajax({ url:"/handle_Ajax/", type:"POST", data:{username:"Yuan",password:123}, success:function(data){ console.log(data) },        error: function (jqXHR,

10 Django与Ajax

≯℡__Kan透↙ 提交于 2020-02-05 05:57:10
知识预览   1. Ajax   2. 文件上传 Ajax Ajax简介 AJAX ( Asynchronous Javascript And XML )翻译成中文就是 “ 异步 Javascript 和 XML” 。即使用 Javascript 语言与服务器进行异步交互,传输的数据为 XML (当然,传输的数据不只是 XML,现在更多使用json数据 )。 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求; 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。 AJAX除了 异步 的特点外,还有一个就是: 浏览器页面 局部刷新 ;( 这一特点给用户的感受是在不知不觉中完成请求和响应过程) 场景: 优点: AJAX 使用 Javascript 技术向服务器发送异步请求 AJAX 无须刷新整个页面 基于jquery的Ajax实现 <button class="send_Ajax">send_Ajax</button> <script> $(".send_Ajax").click(function(){ $.ajax({ url:"/handle_Ajax/", type:"POST", data:{username:"Yuan",password:123}, success:function(data){ console.log

form表单无刷新提交

被刻印的时光 ゝ 提交于 2020-02-03 23:13:17
Ajax最大的特点就是 可以不刷新页面而实现数据的通信及更改页面信息 。那么用AJAX进行后台通信传递字符串还是可以的,遇到上传文件该怎么办呢?基于安全考虑,JS是不能直接进行文件操作的,只好用原始的from来提交文件上传了。这样一来,用form不就要刷新页面了吗?其实也不是。 给我们的from加一个target属性,并且将这个属性的值设置为隐藏的iframe的ID,这样一来,刷新的页面是我们隐藏的iframe,我们的页面就不会刷新了。 这个方法,时广大前辈的知识和经验的结晶,我是不费吹灰之力拿来用了,站在巨人的肩膀上。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>AjaxUpload</title> </head> <body onLoad="javascript:alert('onload')" onUnload="javascript:alert('onunload')"> <form name="AjaxUpload" method="post" action="upload.jsp" target="hidden_frame"> <input type="submit" name="Submit" value="提交"> </form>

简单的form表单文件上传

时光总嘲笑我的痴心妄想 提交于 2020-02-02 08:05:20
<form method="post" enctype="multipart/form-data" id="file_upload">   <p>图片预览:</p>   <div id="test-image-preview"></div>   <p>     <input type="file" id="test-image-file" name=" test " accept="image/gif, image/jpeg, image/png, image/jpg">   </p> <p id="test-file-info"></p> </form> 这是一个简单的form表单,文件提交之后, $("form")[0] // <form method=​"post" enctype=​"multipart/​form-data" id=​"file_upload">​…​</form>​ 取到外层的from 节点,然后 初始化一个 FormData 对象 var _formData = new FormData($("form")[0]), 然后ajax 提交就完成了。 (此时可以通过 $("#test-image-file")[0].files[0] 去获取上传图片的详细信息 ) FormData里面的数据可以理解为私有变量。所以在控制台是看不出来的,要用FormData的

python之form表单上传文件

笑着哭i 提交于 2020-02-01 14:04:24
文件上传 -----form表单上传文件 看下代码就完事了 def up_load(request): if request.method == "GET": 获取数据库的数据 imglist=models.Image.objects.all() return render(request, "upload.html",{"imageL":imglist}) elif request.method == "POST": user = request.POST.get("user") haha = request.POST.get("ha") # 上传图片 obj = request.FILES.get("ha") print(obj.name, obj.size) # f=open(obj.name,'wb') import os filepath = os.path.join("static","image", obj.name)#图片的路径 # f=open(os.path.join("upload",obj.name),'wb') #将路径存入数据库 models.Image.objects.create(path=filepath) f = open(filepath, 'wb') for chunk in obj.chunks(): f.write(chunk) f

bootstrapValidator常用验证规则总结

耗尽温柔 提交于 2020-01-30 14:02:54
bootstrapValidator常用验证规则总结 一 、bootstrapValidator引入 在使用bootstrapValidator前我们需要引入bootstrap和bootstrapValidator对应的js和css文件。 <link rel="stylesheet" href="css/bootstrap.min.css" />  <link rel="stylesheet" href="bootstarp-validator/bootstrapValidator.css}"/> <!-- 1、Jquery组件引用 --> <script src="js/jquery-1.10.2.min.js" th:src="@{/js/jquery-1.10.2.min.js}"></script> <!-- 2、bootstrap组件引用 --> <script src="js/bootstrap.min.js" th:src="@{/js/bootstrap.min.js}"></script> <!-- 3、引入bootstrapValidator的js --> <script type="text/javascript" th:src="@{js/bootstraptable/bootstrapValidator.js}"></script> 二、绑定验证的js代码