ajax 文件上传,ajax

ajax 文件上传,ajax

啥也不说了,直接上代码!

<input type="file" id="file" name="myfile" onclick="clearProgressInfo()"/>
<span id="progressInfo" style="display:none;">
<progress id="progressBar" value="0" max="100"></progress>
<span id="percentage"></span>
</span><br/>
<input type="button" onclick="UpladFile()" value="上传" />

js代码

function UpladFile() {
	var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
	var FileController = "/file/saveFile.do"; // 接收上传文件的后台地址 

	// FormData 对象
	var form = new FormData();
	form.append("author", "hooyes"); // 可以增加表单数据
	form.append("file", fileObj); // 文件对象

	// XMLHttpRequest 对象
	var xhr = new XMLHttpRequest();
	xhr.open("post", FileController, true);
	xhr.onload = function() {
		// alert("上传完成!");
	};

	document.getElementById(‘progressInfo‘).style.display = "";
	xhr.upload.addEventListener("progress", progressFunction, false);

	xhr.send(form);
}

function clearProgressInfo()
{
	document.getElementById(‘progressInfo‘).style.display=‘none‘;
	document.getElementById("progressBar").value = 0;
	document.getElementById("percentage").innerHTML = "";
}

function progressFunction(evt) {
	var progressBar = document.getElementById("progressBar");
	var percentageDiv = document.getElementById("percentage");
	if (evt.lengthComputable) {
		progressBar.max = evt.total;
		progressBar.value = evt.loaded;
		percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
	}
}

java后台处理:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.util.Streams;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import com.okcoin.util.Logs;

@Controller
@RequestMapping(value="/file/*.do")
public class FileController extends MultiActionController{

	public String saveFile(HttpServletRequest request,HttpServletResponse response) throws IOException
	{
		MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());
		MultipartHttpServletRequest multipartRequest = null;
		try {
			multipartRequest = resolver.resolveMultipart(request);
		} catch (Exception e) {
			Logs.geterrorLogger().error("AdminAccountController submitVerifyFile 非常的请求");
		}

		//接收文件
		MultipartFile documentFile = multipartRequest.getFile("file");
		//获取文件名
		String documentFileName=documentFile.getOriginalFilename();
		System.out.println("FileName:" + documentFileName);

		BufferedInputStream in = new BufferedInputStream(documentFile.getInputStream());
		BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("D:\\Users\\" + documentFileName));
		Streams.copy(in, out, true);
		System.out.println("copy finished.");
		return "";
	}
}
时间: 2024-07-29 17:39:40

ajax 文件上传,ajax的相关文章

Ajax文件上传组件

项目中经常需要文件上传,每次都要重复造轮子,所以决定将文件上传做成组件,方便使用.效果如图: 自我感觉效果还是可以的,而且使用的代码也变得十分清晰,前端的html代码非常简洁,如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <link href = "fileuploader.css&quo

【Jsp】使用AjaxFileUploader与jspsmartupload完成不刷新的Ajax文件上传系统

这个不刷新的Ajax文件上传系统同样可以用来做预览图 虽然预览图完全可以通过不上传图片就完成,但是不刷新的Ajax文件上传系统可以做到上传完图片立即返回上传结果给用户的结果 上次在<[Jsp]使用jspsmartupload完成简单的文件上传系统>(点击打开链接)一文中完成了一个简单的文件上传系统 但是这个文件上传系统过于传统, 上传完文件之后需要跳转到另外一个页面中提交表单,处理表单,然后再提供一个"返回"按钮给用户 如果用户要求上传之后,马上看到图片,并且不跳转,只好利

Javascript Fromdata 与jQuery 实现Ajax文件上传以及文件的删除

前端HTML代码: <!DOCTYPE html> <html> <head> <title>ajax</title> <script type="text/javascript" src="js/jquery.js"></script> <meta charset="utf-8" /> <style type="text/css&qu

Javascript Fromdata 与jQuery 实现Ajax文件上传

<!DOCTYPE html> <html> <head> <title>ajax</title> <script type="text/javascript" src="js/jquery.js"></script> <meta charset="utf-8" /> <style type="text/css"> fo

AJAX文件上传实践与分析,带HTML5文件上传API。

对于HTML5已经支持AJAX文件上传了,但如果需要兼容的话还是得用一点小技巧的,HTML5等等介绍,先来看看以前我们是怎么写的. 网上可能会有一些叫AJAX文件上传插件,但在AJAX2.0之前是不可能实现的,因为浏览器的原因,AJAX根本获取不了文件信息,当然这里并不是说就不能文件上传了,只是说在AJAX2.0之前所谓的AJAX文件上传都是假冒的,核心更本没有用AJAX,而是利用iframe实现的,下面我们来看看如何利用iframe实现页面无刷新上传文件. iframe无刷新上传文件版. ht

兼容ie的jquery ajax文件上传

Ajax文件上传插件很多,但兼容性各不一样,许多是对ie不兼容的,另外项目中是要求将网页内容嵌入到桌面端应用的,这样就不允许带flash的上传插件了,如:jquery uploadify...悲剧 对于Ajax文件上传,大体是有: 1.创建一个input type="file" 的文件上传按钮,根据其id监听绑定其change事件,在事件中用jquery创建一个iframe,嵌入添加隐藏form,同时创建input type="file",id相同的文件上传按钮,并

使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html

使用ajax提交form表单,包括ajax文件上传 前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的ajax $.ajax({ url:"${pageContext.request.contextPath}/public/testupload", type:"post", data:{username:username},

iframe实现Ajax文件上传效果示例

<!doctype html> <html> <head> <meta charset=utf-8> <head> <title>ajax 文件上传~~</title> </head> <script> window.onload=function(){ var form=document.getElementsByTagName('form')[0]; form.onsubmit=function

jQuery插件AjaxFileUpload实现ajax文件上传时老是执行error方法 问题原因

今天在用jQuery插件AjaxFileUpload实现ajax文件上传时,遇到一个问题,如图: 老是执行error,无法执行succes方法,追踪ajaxfileupload.js源码发现: 当执行if(type=="json")    eval("data = "+data);会抛出异常,导致在处理异常的时候将status = "error" 因此一直执行error方法. 上网查询,得知eval函数是用来执行一段js代码,而并不是如我所想的反

html5-php的ajax文件上传实现

-----------------------------------form.html---------------------------------------<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="htt