1.html表单上传(不推荐)

最传统的图片上传方式是form表单上传,使用form表单的input[type=”file”]控件,打开系统的文件选择对话框,从而达到选择文件并上传的目的。

form表单上传。表单上传需要注意以下几点:

1、.提供form表单,method必须是post。

2、form表单的enctype必须是multipart/form-data。

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码。HTML表单如何打包数据文件是由enctype这个属性决定的。

enctype有以下几种取值:

aplication/x-www-form-urlencoded:在发送前编码所有字符(默认)(空格被编码为’+’,特殊字符被编码为ASCII十六进制字符)。
multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
text/plain:空格转换为 “+” 加号,但不对特殊字符编码。
默认enctype=application/x-www-form-urlencoded,所以表单的内容会按URL规则编码,  

2.Ajax无刷新上传(jquery---ajax上传

ajax和FormData可实现页面无刷新的文件上传效果,主要用到了jQuery的ajax()方法和XMLHttpRequest Level 2的FormData接口。通过FormData对象可以更灵活方便的发送表单数据,因为可以独立于表单使用。如果你把表单的编码类型设置为multipart/form-data ,则通过FormData传输的数据格式和表单通过submit()方法传输的数据格式相同。

Ajax无刷新上传的方式,本质上与表单上传无异,只是把表单里的内容提出来采用ajax提交,并且由前端决定请求结果回传后的展示结果。

<form><input id="file" name="file" type="file" /><input id="token" name="token" type="hidden" />
</form>
$("#file").on("change", function(){var formData = new FormData();formData.append("file", $("#file")[0].files);formData.append("token", $("#token").val());$.ajax({url: "http://uploadUrl",type: "POST",data: formData,processData: false,contentType: false,success: function(response){// 根据返回结果指定界面操作}});
});

我们使用了file控件的change来触发上传事件,当然你也可以使用某个按钮来触发表单提交。提交数据时,用到了FormData对象来发送二进制文件,FormData构造函数提供的append()方法,除了直接添加二进制文件还可以附带一些其它的参数, 作为XMLHttpRequest实例的参数提交给服务端。

使用jQuery提供的ajax方法来发送二进制文件,还需要附加两个参数:

processData: false // 不要对data参数进行序列化处理,默认为true
contentType: false // 不要设置Content-Type请求头,因为文件数据是以 multipart/form-data 来编码

3.web文件上传插件  Web Uploader ---- 支持多图上传,大文件上传,压缩图片上传,预览等

  官网 : http://fex.baidu.com/webuploader/

各类插件上传

当上传的需求要求可预览、显示上传进度、中断上传过程、大文件分片上传等等,这时传统的表单上传很难实现这些功能,我们可以借助现有插件完成。

如百度上传插件Web Uploader、jQuery图片预览插件imgPreview 、拖拽上传与图像预览插件Dropzone.js等等,大家可根据项目实际需求选择适合的插件。

图片上传几种方式总结相关推荐

  1. Python页面自动化文件上传两种方式

    Python页面自动化测试之文件上传的两种方式 --广州_vivi 最近教学过程,学员项目出现测试上传文件无法执行的情况,分析发现学员项目的上传按钮并不是input按钮,导致无法使用直接定位元素方式进 ...

  2. C# ASP.NET MVC 图片上传的多种方式(存储至服务器文件夹,阿里云oss)

    图片上传时我们进场用到的一个功能今天将他整理了一下写了个demo希望对大家有用 该demo分为如下 1.上传至至服务器文件夹 2.上传至阿里云oss 3.百度webupload上传图片 效果图如下: ...

  3. appcan图片上传最新实现方式

    今天我来说说我最新在做的新的模块,意见反馈,其中用appcan实现图片上传是一个技术难点.所以,这一节,我就来说一说appcan实现图片上传. 首先,我们要先搞清楚图片上传的具体步骤和难点. 先来说说 ...

  4. .NET自定义多文件(图片)上传的实现方式

    目的:通过输入要显示传图片的数量,自动创建相对应数量的上传控件,进行一次性上传操作. 默认有一个上传控件,当输入2时并点击添加按钮后,下面又显示了2个控件,效果如下: 点击全部上传按钮后的效果: CS ...

  5. 头像截图上传两种方式(SWFUpload、一个简单易用的flash插件)

    SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统<input ty ...

  6. 第四章:Spring项目文件上传两种方式(全解析)

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...

  7. jquery上传图片_文件上传三种方式

    来源:python宝典    链接: https://mp.weixin.qq.com/s/YUplCQDfAucA_rS8E1T6WA 需求 上传图片在页面显示 Form表单上传 <html ...

  8. django 类取消csrf_Django之Form组件详解、图片上传及定制

    Django的Form功能 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 Django form 流程 1.创建类,继承form.Form ...

  9. 图片上传之fileupload

    最近学习了图片上传这个功能,这个功能比较常见,因此来整理一下,了解上传的基本原理,以便后期遇到图片上传功能可以很快上手. 要说图片上传,我们先来说一下图片上传后存储的两种方式:一种是将图片存储到数据库 ...

  10. Mac应用推荐:iPic 图片上传工具

    作为一名Mac用户,我们总是需要各种各样的软件来提高工作效率和生活质量.但是在众多的软件中,有些软件价格昂贵.功能复杂,而有些则是免费但功能不够完善.今天我要向大家推荐一款好用良心的Mac软件--iP ...

最新文章

  1. Q币才是腾讯真正的世界级产品
  2. [转载]WebForm下使用 jQuery.loadUserControl异步load用户控件
  3. Linux centosVMware zip压缩工具、tar打包、打包并压缩
  4. 6个经典的JavaScript报错分析
  5. 前端学习(615):变量
  6. Anaconda中如何查看已经安装的包
  7. C语言:编写程序,打开文本文件stu.txt,读出文件内容,将其中的字符‘s’删除,将修改后的内容存到student.txt文件中。
  8. 找出一个字符串中的数字
  9. windows访问Linux共享文件夹
  10. graphpad分组百分比柱状图_Graphpad与SPSS完成分组柱形图教程
  11. android两个popwindow背景,Android PopWindow 设置背景亮度的实例
  12. win10默认壁纸位置
  13. HTML5期末大作业:关于家乡介绍主题网页设计——云南民族文化(8页) HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品
  14. CentOS7 安装 Oracle 11g rac(7) —— 安装 grid 软件前的准备工作
  15. xmarks恢复使用
  16. 想给我们的线下分享会起个名字,求建议!
  17. 如何用微信公众号二维码事件做扫码登陆
  18. POJ 【1088】 滑雪
  19. 传输预编码matlab,基于MATLAB的MIMO系统预编码性能仿真.doc
  20. 中国石油大学华东2013-2014-1c语言a卷_答案,中国石油大学(华东)2012—2013学年第二学期期中A卷试卷答案...

热门文章

  1. @Resource注解
  2. 常用文件密码破解工具
  3. 费希纳定律的推导过程图解
  4. 升级win10系统后出现语言乱码怎么办,如何解决乱码问题?
  5. python 相关系数(全)
  6. 小米编程真题:风口的猪-中国牛市
  7. 风口上的猪-中国牛市
  8. 深度解析:印度软件产业为何如此发达
  9. 微信隐藏功能:微信怎么群发消息给好友不建群?
  10. bc vc投资_天使投资、VC 以及 PE 的区别是什么?