js前端:
var url = '/onlineEdu/common/upload';
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.GetFile("C:/a.txt");
var xhr = new XMLHttpRequest();
var ts = file.OpenAsTextStream();
var htmlParts = [ts.ReadAll()];
var myBlob = new Blob(htmlParts, { type : 'text/xml' });//上传图片失效,类型为image/png
xhr.open("POST", url,true);
var fd = new FormData();
fd.append("file", myBlob);
ts.Close();
xhr.send(fd);
java后端:
@ResponseBody
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public void upload(HttpServletRequest request, HttpServletResponse response) {
//dfif对象为解析器提供解析时的缺省的一些配置
DiskFileItemFactory dfif =
new DiskFileItemFactory();
//创建解析器
ServletFileUpload sfu =
new ServletFileUpload(dfif);
//开始解析(分析InputStream)
//每一个表单域当中的数据都会
//封装到一个对应的FileItem对象上。
try {
List<FileItem> items =
sfu.parseRequest(request);
for(int i=0;i<items.size();i++){
FileItem item = items.get(i);
//要区分是上传文件域还是普通的表单域
if(item.isFormField()){
//普通表单域
String name = item.getString();
System.out.println("name:" + name);
}else{
//上传文件域
//获得原始的文件名
String filename = item.getName();
//将FileItem对象中的数据写到指定的文件。
File file = new File("D:/EDUworkspace/.metadata/.me_tcat/webapps/onlineEdu/ueditor1.4.3/jsp/upload/email/2015-07-08/a.txt");
item.write(file);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}