解决ajax异步上传文件的问题

HTML:

<form id="avater" name="formlist">

{{ csrf_field() }}

<ul class="list-group container" style="width:50%">

<li class="list-group-item list" style="border-radius: 5px">

<input id="image" class="file" type="file" name="file">

<button id="btn" style=" width: 50px;height: 25px;padding:0" class="btn btn-primary radius" type="button">上传</button>

</li>

</ul>

</form>

Jquery:

$(‘#btn‘).on(‘click‘, function() {

var file = $(‘#image‘)[0].files[0];

var form = $(‘#avater‘)[0];

var formdata = new FormData(form);

formdata.append(‘image‘, file)

$.ajax({

type: ‘post‘,

url: "{{url(‘setava‘)}}",

data: formdata,

dataType: ‘json‘,

processData: false,

contentType: false,

success: function(res) {

if (res.status == 0) {

alert(res.msg);

window.location.href = "{{url(‘set‘)}}";

}

}

});

红色部分为重要部分,使用FormData对象可以解决ajax异步上传文件的问题。并且可以同时传输表单内容和文件的合并上传,后台代码正常接值就可以。(文件时用file来接)

原文地址:https://www.cnblogs.com/CWJDD/p/11456883.html

时间: 2024-10-09 04:18:44

解决ajax异步上传文件的问题的相关文章

Ajax异步上传文件

需要引用js jquery.form 前端代码 <form action="/Save" id="mainForm" method="post" enctype="multipart/form-data"> <div class="portlet-body form-horizontal form-bordered form-row-stripped"> <div class=

ajax异步上传文件之data参数----小哈学js

下载ajaxFileUpload.js(下载网址:http://fileuploadajax.codeplex.com/downloads/get/20976) 修改ajaxFileUpload.js内部程序 1 一.大约在32行 2 createUploadForm: function(id, fileElementId,data) 3 二.大约在47行 4 jQuery(form).appendTo('body');前添加一下代码 5 if (data) { 6 for (var i in

(H5)FormData+AJAX+SpringMVC跨域异步上传文件

最近都没时间整理资料了,一入职就要弄懂业务,整天被业务弄得血崩. 总结下今天弄了一个早上的跨域异步上传文件.主要用到技术有HTML5的FormData,AJAX,Spring MVC. 首先看下上传页面: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="js/plugins/

异步上传文件并获得返回值(完全跨域)

http://blog.csdn.net/lrz1011/article/details/7913992 异步上传文件并获得返回值(完全跨域)AJAX可以进行数据的异步请求,但对于文件和跨域问题却束手无策. Jsonp可以进行跨域数据的异步请求,但同样不能使用于文件. <form>表单可以进行跨域数据和文件的上传,但却会使页面跳转. 那么如何同时实现“异步”+“跨域”+“文件”+“返回值”这几个特性呢?方法如下: 原理: 将<form>表单通过一个iframe来submit,也就是

Asp.Net Mvc异步上传文件的方式

今天试了下mvc自带的ajax,发现上传文件时后端action接收不到文件, Request.Files和HttpPostedFileBase都接收不到.....后来搜索了下才知道mvc自带的Ajax不支持文件上传,无奈之下只能用其他的方式 第一种方式:通过 jquery的ajaxSubmit --->(先引入jQuery脚本)需要引入jquery.form.min.js(可以通过NuGet下载) 直接上代码 @{ Layout = null; } <!DOCTYPE html> <

简述三种异步上传文件方式

 很久没写过博客了! 上次写已经是去年的12月了,离现在也有足足三个月了.这几个月因为要搭建个人网站以及准备个人简历,包括最近要准备最近的各大公司的实习春招,很难抽时间来写博客,这次的异步文件上传我觉得是很有必要了解的,笼络了很多知识点,因此准备写一篇博客来巩固下. 异步上传文件是为了更好的用户体验,是每个前端必须掌握的技能.这里我提出三点有关异步文件上传的方式. 使用第三方控件,如Flash,ActiveX等浏览器插件上传. 使用隐藏的iframe模拟异步上传. 使用XMLHttpReques

struts2 jquery ajaxFileUpload 异步上传文件

一.ajaxFileUpload 实现异步上传文件利用到了ajaxFileUpload.js这个文件,这是别人开发的一个jquery的插件,可以实现文件的上传并能够和struts2框架和好的融合在一起.但是网上的提供的一些ajaxFileUpload.js插件存在一些问题,不能够实现多次点击上传文件,要想再次上传必须重新刷新页面.在网上找了好久才找到真正的解决方案,有些网友给出的解决方案并没有真正的解决问题,不知到什么原因.我的修改: 原文件: var oldElement = $('#' +

异步上传文件多种方式归纳

最近在做异步上传文件的工作,用到了一些库,这里归纳下,暂且不考虑异常处理,仅作为demo. 1.不用任何插件,利用iframe,将form的taget设为iframe的name,注意设为iframe的id是没用的,跟网上很多说的不太一致 iframe_upload.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm

Jquery_异步上传文件多种方式归纳

1.不用任何插件,利用iframe,将form的taget设为iframe的name,注意设为iframe的id是没用的,跟网上很多说的不太一致 iframe_upload.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&