关闭

ajax异步图片/文件上传的实现_利用FormData对象

时间: 2018-06-12阅读: 1303标签: 异步

在前后分离开发中,经常会遇到上传文件的情况,后端会有一个文件上传接口,通过ajax上传成功后返回图片地址url给前端。然后在把url和其他数据以前提交给后端保存到数据库。那么如何实现ajax异步文件上传功能呢?下面就介绍下利用FormData对象的实现方案。


html代码

<input type="file" name="file" id="imgUrl" onclick="upload()"/>


js代码:

function upload(){
    var file=document.getElementById("imgUrl").files[0];
    var form=new FormData();
    form.append('file',file);//文件
    ajax({ 
        url: _url,
        type: 'post', 
        async:true,//同步
        success: function(r){  
            //成功后代码
        },
    ); 
}

备注:

1、如今主流浏览器都开始支持一个叫做FormData的对象,有了这个FormData,我们就可以轻松地使用Ajax方式进行文件上传。

2、在ajax中content-type不要传递:'application/x-www-form-urlencoded' 或者 'application/json;charset=UTF-8',不要传默认为:multipart/form-data。


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/873

理解Javascript的异步

Javascript是单线程的编程语言,单线程就是说同一时间只能干一件事。放到编程语言上来说,就是说Javascript引擎(执行Javascript代码的虚拟机)同一时间只能执行一条语句。单线程语言的好处是你只管写不用担心并发问题。

Node.js 中的异步生成器和异步迭代

生成器函数在 JavaScript 中的出现早于引入 async/await,这意味着在创建异步生成器(始终返回 Promise 且可以 await 的生成器)的同时,还引入了许多需要注意的事项。

解决异步的几种实现方式

setTimeout为异步函数,所以第二个返回值就打印为了undefined,因为不会等待计时器函数执行完成再执行外层的console.log(request())。

解决异步编程的方法:promise与await

Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API

如何优化async代码?更好的编写async异步函数

如何优化async代码?更好的编写async函数:使用return Promise.reject()在async函数中抛出异常,让相互之间没有依赖关系的异步函数同时执行,不要在循环的回调中/for、while循环中使用await,用map来代替它

异步的JavaScript

JS本身是一门单线程的语言,所以在执行一些需要等待的任务(eg.等待服务器响应,等待用户输入等)时就会阻塞其他代码。如果在浏览器中JS线程阻塞了,浏览器可能会失去响应,从而造成不好的用户体验。

解读react的setSate的异步问题

将setState()认为是一次请求而不是一次立即执行更新组件的命令。为了更为可观的性能,React可能会推迟它,稍后会一次性更新这些组件。React不会保证在setState之后,能够立刻拿到改变的结果。

浅析JavaScript异步

一直以来都知道JavaScript是一门单线程语言,在笔试过程中不断的遇到一些输出结果的问题,考量的是对异步编程掌握情况。一般被问到异步的时候脑子里第一反应就是Ajax,setTimseout...这些东西

深浅克隆和Promise异步编程

回调地狱:上一个回调函数中继续做事情,而且继续回调(在真实项目的AJAX请求中经常出现回调地狱)=>异步请求、不方便代码的维护,Promise的诞生就是为了解决异步请求中的回调地狱问题

在现代JavaScript中编写异步任务

在本文中,我们将探讨过去围绕异步执行的JavaScript的演变以及它如何改变我们编写和读取代码的方式。我们将从Web开发的开始,一直到现代异步模式示例

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!