关注微信公众号
【qq截图保存在哪里 截图保存到哪了】PHP技术大全
每天精彩分享不间断
文件上传在WEB开发中应用很广泛 , 我们经常发微博、发微信朋友圈都用到了图片上传功能 。
文件上传是指将本地图片、视频、音频等文件上传到服务器上 , 可以供其他用户浏览或下载的过程 。
今天我给大家聊聊常见的文件(图片)上传的方式和要点处理 。
表单上传
这是传统的form表单上传 , 使用form表单的input[type=”file”]控件 , 可以打开系统的文件选择对话框 , 从而达到选择文件并上传的目的 , 它的好处是多浏览器兼容 , 它是web开发者最常用的一种文件上传方式 。
表单的代码如下:
<formmethod="post"action="http://uploadUrl"enctype="multipart/form-data"><inputname="file"type="file"accept="image/gif,image.jpg"/><inputname="token"type="hidden"/><inputtype="submit"value="https://www.scwdwl.com/n/提交"/></form>
以下是表单上传几个关键点:
method=”post”: 采用post方式提交数据
enctype=”multipart/form- data”:采用multipart格式上传文件 , 此时request头会显示 Content-Type:multipart/form-data; boundary=—-WebKitFormBoundaryzr34cwJ67R95KQC9
action:标明上传的服务端处理地址
type=”file”:使用input的file控件上传
如果是多文件批量上传 , 可以将input[type=”file”]的name属性设置为如:name=”file[]”
accept属性是HTML5的新属性 , 它规定了可通过文件上传提交的文件类型
上传的触发事件可以是:input[type=”file”]的onChange触发 , 也可以由一个独立的按钮的onClick使整个表单提交 , 此时还可以用input[type=”hidden”]带一些其它的参数 , 比如Token来源验证等等 。
展开全文
method=”post”: 采用post方式提交数据
enctype=”multipart/form- data”:采用multipart格式上传文件 , 此时request头会显示 Content-Type:multipart/form-data; boundary=—-WebKitFormBoundaryzr34cwJ67R95KQC9
action:标明上传的服务端处理地址
type=”file”:使用input的file控件上传
如果是多文件批量上传 , 可以将input[type=”file”]的name属性设置为如:name=”file[]”
accept属性是HTML5的新属性 , 它规定了可通过文件上传提交的文件类型
上传的触发事件可以是:input[type=”file”]的onChange触发 , 也可以由一个独立的按钮的onClick使整个表单提交 , 此时还可以用input[type=”hidden”]带一些其它的参数 , 比如Token来源验证等等 。
Ajax无刷新上传的方式 , 本质上与表单上传无异 , 只是把表单里的内容提出来采用ajax提交 , 并且由前端决定请求结果回传后的展示结果 , 不用像直接表单上传那样刷新和跳转页面 。在这里 , 我们采用jQuery来作为操作DOM和创建ajax提交的js基础库 。
html代码片段如下:
<form><inputid="file"name="file"type="file"/><inputid="token"name="token"type="hidden"/></form>
java代码片段如下:
$("#file").on("change",function(){varformData =https://www.scwdwl.com/n/newFormData();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()方法 , 除了直接添加二进制文件还可以附带一些其它的参数 , 作为实例的参数提交给服务端 。
- 高铁深圳站在哪里 高铁深圳站在哪里坐车
- 开元在哪里 开元在哪个地方
- 苹果id在哪里 苹果id在哪里看到
- 顺丰在哪里 顺丰在哪里自建了亚洲第一个货运机场
- 出路在哪里 二本大学生的出路在哪里
- 新塘在哪里 广州新塘在哪里
- 瀛洲在哪里 瀛洲岛是怎样的
- 三里桥在哪里 三里桥在哪里办身份证
- 看不孕哪里好 在哪里看不孕不育好
- 新区在哪里 冀南新区在哪里