zoukankan      html  css  js  c++  java
  • web前端上传图片的几种方法

    1.表单上传

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

    web上传图片的几种方法

    form表单上传

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

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

    (2).form表单的enctype必须是multipart/form-data。

    javascript学习交流群:453833554

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

    application/x-www-form-urlencoded:在发送前编码所有字符(默认)(空格被编码为’+’,特殊字符被编码为ASCII十六进制字符)。

    multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。

    text/plain:空格转换为 “+” 加号,但不对特殊字符编码。

    默认enctype=application/x-www-form-urlencoded,所以表单的内容会按URL规则编码,然后根据表单的提交方法:

    method=’get’ 编码后的表单内容附加在请求连接后,

    method=’post’ 编码后的表单内容作为post请求的正文内容。

    (3).提供input type="file"上传输入域。

    浏览器请求体如下:

    web上传图片的几种方法

    请求体

    2.ajax上传

    ajax和FormData可实现页面无刷新的文件上传效果,主要用到了jQuery的ajax()方法和XMLHttpRequest Level 2的

    FormData接口。通过FormData对象可以更灵活方便的发送表单数据,因为可以独立于表单使用。如果你把表单的编码类型设置为multipart/form-data ,则通过FormData传输的数据格式和表单通过submit()方法传输的数据格式相同。

    web上传图片的几种方法

    ajax无刷新上传

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

    3.各类插件上传

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

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


    javascript学习交流群:453833554
  • 相关阅读:
    Linux各个目录的作用及内容
    发现未授权登录用户怎么办
    开启GodMode
    通过域名方式决定使用哪个数据库的方式分享
    openerp-server.conf 中配置 dbfilter 参数无效的解决办法
    OpenERP7.0 忘记admin管理员密码解决办法
    DEB方式在UBUNTU安装ODOO 8.0
    解决apt-get的E: Could not get lock /var/lib/dpkg/lock方法
    Ubuntu 11.04 (Natty) 已经停止支持 但可以使用old-releases源了
    How to get the url of a page in OpenERP?
  • 原文地址:https://www.cnblogs.com/gongyue/p/7686359.html
Copyright © 2011-2022 走看看