随着html5 的到来,利用ajax上传成为可能
html代码中input标签,type属性为file不可少
对应的javascript代码如下
var fileObj = document.getElementById("file").files[0]; // 获取文件对象
var form = new FormData();
form.append("file", fileObj); // 文件对象
// XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
xhr.open("POST", "/ssh/Test?id=2", true);//路径为后台action的路径
xhr.send(form);
后台action(即spring框架中的控制器)接收代码如下
try {
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
String fileName = item.getName();
InputStream content = item.getInputStream();
String fullPath=request.getServletContext().getRealPath("/");
OutputStream os=new FileOutputStream(fullPath+"\\img\\"+Math.random()+".jpg");
int len = 0;
byte[] buffer = new byte[8192];
while ((len = content.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, len);// 将文件写入服务器
}
os.close();
content.close();
}
} catch (FileUploadException e) {
throw new ServletException("Parsing file upload failed.", e);
}