formdata

File杂谈——拖拽异步上传实现

流过昼夜 提交于 2019-12-04 20:03:21
在前一篇文章《 File杂谈——拖拽上传前传 》中我制作了一个 静态的拖拽上传界面 ,拖拽文件到显示区域释放,可以显示拖入文件的基本信息。本文将在此基础上进一步加工,打造一个完整的 拖拽上传示例 。 示例说明 点击区域选择文件或直接将文件拖入区域,触发文件上传功能,文件将异步发送到服务器。待服务端处理完成后返回基本信息,在页面中显示。由于服务器容量问题,本示例未做文件保存处理,只是简单的将文件基本信息返回,文件上传的后端具体处理逻辑需要自行补充。 新的小伙伴FormData 我们知道,传统的文件上传如果要实现异步的效果,我们会使用iframe去模拟,或使用flash上传插件。但是今天,我们又认识了一位新成员——FromData,它可以通过js创建表单对象,并可以向该对象中添加表单数据(字符串、数字、文件等)。再结合我们熟悉的XMLHttpRequest对象,将表单数据异步提交到服务端,这样我们的问题就解决了。 下面,我们来看下核心代码: function uploadFile(fs) { var len = fs.length; for (var i = 0; i < len; i++) { sendFile(fs[i]); } } function sendFile(file) { var xhr = new XMLHttpRequest(), fd = new FormData

jq上传单张图片+预览

天大地大妈咪最大 提交于 2019-12-04 19:11:27
实现效果: html: <section class="uploadingIDCard"> <p>上传身份证</p> <ul class="IDCardImg"> <li> <div class="upload-header"> <span class="icon-tianjia iconfont"></span> <input class="upload" type="file" accept="image/*"> </div> <div class="img-box"> <!-- 存放预览图片 --> </div> <div class="img-list"> <img src="${this.result}" alt=""> </div> </li> <li> <div class="upload-header"> <span class="icon-tianjia iconfont"></span> <input class="upload" type="file" accept="image/*"> </div> <div class="img-box"> <!-- 存放预览图片 --> </div> <div class="img-list"> <img src="${this.result}" alt=""> </div> </li> </ul> <ul class=

BBS注册功能

冷暖自知 提交于 2019-12-04 18:28:21
BBS注册功能 一、后端 1.组件校验数据 """ @author RansySun @create 2019-11-03-11:35 """ from django import forms from django.forms import widgets from app import models class MyRegForm(forms.Form): """创建注册标签""" username = forms.CharField(min_length=3, max_length=9, label='用户名', error_messages={ 'min_length': '用户名不能少于六位', 'max_length': '用户名不能大于九位', 'required': '用户名不能为空' }, widget=widgets.TextInput(attrs={'class': 'form-control'})) password = forms.CharField(min_length=3, max_length=8, label='密 码', error_messages={ 'min_length': '密码不能少于六位', 'max_length': '密码不能多于八位', 'required': '密码不能为空' }, widget=widgets

WebApi上传文件

风流意气都作罢 提交于 2019-12-04 17:55:07
使用webapi上传文件需要引用ICSharpCode.SharpZipLib.Zip; 前端代码示例: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 <meta charset="utf-8" /> 7 8 <script src="Resource/jquery-1.10.2.min.js"></script> 9 <script> 10 $(function () { 11 $("#upload").click(function () { 12 $("#imgWait").show(); 13 var formData = new FormData($('form')[0]); 14 // formData.append("myfile", document.getElementById("file1").files[0]); 15 $.ajax({ 16 url: "https://localhost:81/api/file/uploadfile/111", 17 type: "POST", 18 data: formData, 19 /** 20

Html5 FormData+Ajax表单数据提交

江枫思渺然 提交于 2019-12-04 17:16:06
首先来认识一下FormData表单 var formData = new FormData(); formData.append('name', 'zhangsan'); formData.append('age', 20); formData.append('gender', 'M'); //防止跨域,注意,该字符串由服务端生成后一部分发送到session中,一部分放在form隐藏域中 formData.append('csrf', 'yty98db128swdx827dcd3jdxh'); 或者使用另一种方式 <form id='registerform' name='user/register' action='user/register'> <input type='text' name='username' value='张三'> <input type='email' name='email' value='zhangsan@example.com'> <input type='number' name='birthDate' value='1940'> <input type='submit' onclick='sendForm(this.form); return false;'> </form> var formData = new FormData

react 使用fetch 上传文件 写法

 ̄綄美尐妖づ 提交于 2019-12-04 15:20:15
第一,使用原生input的type=”file” <input type= "file" name= "file" onChange={ this .onChange} style={{display: 'none' }} ref={ this .inputRef}/> 第二, 用它的onChange方法获得file onChange(e){ const file = e.target.files[ 0 ] if (file) dispatch({ type: 'upload' , file }) e.target.value = '' // 上传之后还原 } 第三,样式调整 为了不使用简陋的原生html上传按钮, 用style={{display:’none’}}隐藏原生input, 然后再自己写一个美丽的上传按钮,它onClick的时候, 调用原生input的引用,手动触发click, 像这样: this .inputRef .click () 就相当于点击了原生按钮 第四,设置好body 用上刚才的file变量, 创建一个FormData, append上去, 这里的formData就是fetch的body const formData = new FormData() formData.append( 'file' , file) 最后 执行fetch 记得改content

HTML表单(来自MDN的总结)

夙愿已清 提交于 2019-12-04 15:07:15
表单介绍 HTML表单是用户和web站点或应用程序之间交互的主要内容之一。它们允许用户将数据发送到web站点。大多数情况下,数据被发送到web服务器,但是web页面也可以拦截它自己并使用它。 HTML表单是由一个或多个小部件组成的。这些小部件可以是文本字段(单行或多行)、选择框、按钮、复选框或单选按钮。大多数情况下,这些小部件与描述其目的的标签配对——正确实现的标签能够清楚地指示视力正常的用户和盲人用户输入表单输入的内容。 HTML表单和常规HTML文档的主要区别在于,大多数情况下,表单收集的数据被发送到web服务器。在这种情况下,您需要设置一个web服务器来接收和处理数据。 第一个表单 <form action="/my-handling-form-page" method="post"> <div> <label for="name">Name:</label> <input type="text" id="name" /> </div> <div> <label for="mail">E-mail:</label> <input type="email" id="mail" /> </div> <div> <label for="msg">Message:</label> <textarea id="msg"></textarea> </div> </form> <label

html 5 模仿 form 提交file 文件之FormData

橙三吉。 提交于 2019-12-04 15:04:19
使用xhtr 2 可以实现前端提交 无刷新提交form表单 api 参考mdn : https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/%E5%88%A0%E9%99%A4 文章参考 http://blog.csdn.net/u014607184/article/details/52372551#comments 使用ajax 请求时 注意 $.ajax({ url : this .baseUrl+ 'updateHead' , type : 'POST' , data : formData, /** * 必须false才会避开jQuery对 formdata 的默认处理 * XMLHttpRequest会对 formdata 进行正确的处理 */ processData : false , /** *必须false才会自动加上正确的Content-Type */ contentType : false , success : function(responseStr) { alert( "成功:" + JSON.stringify(responseStr)); }, error : function(responseStr) { alert( "失败:" + JSON.stringify(responseStr));

Spring是怎样处理form-data和x-www-form-urlencoded请求的参数的

久未见 提交于 2019-12-04 14:40:04
目录 前言 Spring对请求参数的处理方法 对multipart/form-data请求参数的处理 对application/x-www-form-urlencoded请求参数的处理 前言 我们用@RequestMapping标识一个Web请求的映射,可以标识在方法上,当我们向服务器发送一个请求时,由Spring解析请求来的参数,并赋值给方法的参数,比如这样 @RequestMapping(value = "/testRequestMapping", method = RequestMethod.POST) public void testRequestMapping (String para) { // } 本文关注的是Spring对请求的参数进行封装,并最终转换成java方法的参数的过程。(也就是把请求中的para参数转换成testRequestMapping方法中的para参数) 当请求的ContentType是form-data和x-www-form-urlencoded时,Spring对参数的接收和转换方式不同。 Spring对请求参数的处理方法 Spring把请求的参数名和参数值最终保存在了一个LinkedHashMap中,封装关系如下: 1,Spring对请求参数的处理方法来自org.apache.catalina.connector

react react-draft-wysiwyg使用

风流意气都作罢 提交于 2019-12-04 11:29:32
import * as React from 'react' import { Layout, Pagination, Icon, Modal, message, Button, Form, Input, Upload } from 'antd' import { FormComponentProps } from 'antd/lib/form' import { Editor } from 'react-draft-wysiwyg' import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css' import { ContentState, EditorState, convertToRaw } from 'draft-js' import htmlToDraft from 'html-to-draftjs' import draftToHtml from 'draftjs-to-html' import E from 'wangeditor' import iframeIp from '@config/index' import './index.less' import bgImg from '../../assets/images/index/home_bg.png' import HttpClient from '