web前端上传图片的几种方法 - 悟空前端

gongyue 2021-12-09 原文


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

 

发表于
2017-10-18 14:02 
悟空前端 
阅读(44328
评论(0
编辑 
收藏 
举报

 

版权声明:本文为gongyue原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/gongyue/p/7686359.html

web前端上传图片的几种方法 - 悟空前端的更多相关文章

  1. 【macOS】Homebrew & Homebrew cask macOS软件包管理神器

    ✨Homebrew Homebrew 与 Homebrew Cask Homebrew 是基于 OS X 的套 […]...

  2. 【转】Content-type的几种常见类型 – 丶柚子

    【转】Content-type的几种常见类型 一、是什么? 是Http的实体首部字段,用于说明请求或返回的消息 […]...

  3. 启动PPT的时候一直配置vs2013的问题解决 – 房客

    启动PPT的时候一直配置vs2013的问题解决 前几天装了VS2013,结果发现每次启动powerpoint都 […]...

  4. STM32 SIM800C SIM868 连接OneNet 以及远程控制流程详解 – 听山谷的

    STM32 SIM800C SIM868 连接OneNet 以及远程控制流程详解 Onenet控制继电器教程 […]...

  5. Linux chmod命令 – 时间朋友

    Linux chmod命令 chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制 […]...

  6. matlab中画三维图形 – Dec-Fth

    matlab中画三维图形 这里主要讲述两个方法用matlab画三维图形: 1.mesh函数 先看一个简单的例子 […]...

  7. 笔记本内存条不兼容的一个规律总结 – 逍遥流

    View Post 笔记本内存条不兼容的一个规律总结 您是否遇到以下问题 老电脑添加了新内存条,在原来的32位 […]...

  8. Eclipse简介和使用 – Michael2397

    Eclipse简介和使用 Eclipse简介和使用  常用快捷键 快捷键的配置,常用快捷键: 内容提示: Al […]...

随机推荐

  1. 八大排序算法之直接插入排序(教你用生活的想象,读懂插入算法)

    八大排序算法之直接插入排序(教你用生活的想象,读懂直接插入算法) 1,生活小游戏:”算法来源于生活 […]...

  2. C++知识分享:一种C++函数的重载机制

    一种C++函数重载机制 这个机制是由张素琴等人提出并实现的,他们写了一个C++的编译系统COC++(开发在国产 […]...

  3. eclipse启动不了,出现“Java was started but returned exit code=13……”对话框

    eclipse启动不了,出现“Java was started but returned exit code= […]...

  4. 【java开发系列】—— struts2简单入门示例

    上篇推荐:JDK安装 前言   最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一 […]...

  5. Java泛型详解

    【转】Java泛型详解对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解1. 概述泛型在java中有很...

  6. 负的CPU保护环

    什么是CPU保护环? 在计算机科学中, 分级保护域(英语:hierarchical protection do […]...

  7. 【R语言学习笔记】Day2 线性回归与CART回归树的应用及对比

    1. 目的:根据房子信息,判断博士顿地区的房价。   2. 数据来源:论文《Hedonic housing p […]...

  8. 今天我来给大家讲一下域名知识!

    前面给大家说过一次域名注册,那么大家知道一个域名是可以反复使用的,在一个域名过期后还可以进行注册使用,同一个域 […]...

展开目录

目录导航