JS:
function sub()
{
var file = document.getElementById("imageFile");
var files = file.files;
for(var i = 0 ; i < files.length;i++)
{
uploadFile(files[i]);
}
}
var xhr = null;
function uploadFile(file) {
xhr = new XMLHttpRequest();
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("post", "<%= request.getContextPath()%>/ImageUpload/addImage.html", true);
var fd = new FormData();
fd.append("groupid", "12060");
fd.append("note", "1");
fd.append("groupindex", "1");
fd.append("cdate", "2014-04-10");
fd.append("img", file);
xhr.send(fd);
xhr.onreadystatechange = cb;
}
function cb()
{
if(xhr.status == 200)
{
var b = xhr.responseText;
if(b == "success"){
alert("上传成功!");
}else{
alert("上传失败!");
}
}
}
HTML5:
<input type="file" id="imageFile" name="img" multiple="multiple" />
<input type="button" onclick="sub()" value="提交" />
Java:
@RequestMapping(value = "/addImage.html", method = RequestMethod.POST)
public void doAddImageByGroupId(HttpServletRequest request, HttpServletResponse response,
@RequestParam(value = "groupid", required = true) String groupId,
@RequestParam(value = "note", required = true) String imageDetails,
@RequestParam(value = "groupindex", required = true) String orderIndex,
@RequestParam(value = "cdate", required = true) String cdate,
@RequestParam(value = "img", required = true) CommonsMultipartFile imageFile) throws Exception {
request.setCharacterEncoding(ConstantConfigUtil.Constant.CHARACTER);
response.setCharacterEncoding(ConstantConfigUtil.Constant.CHARACTER);
response.setContentType(ConstantConfigUtil.HTTPConstant.CONTENTTYPE);
this.logger.info(String.format("doAddImageByGroupId param:%s %s %s %s %s", groupId, imageDetails,orderIndex,cdate,imageFile.getName()));
//-------------------------先将文件拷贝到本地-----------------------------
Image image = new Image();
String rowId = StringUtil.makeUUID();
image.setRowId(rowId);
if (null == imageFile || imageFile.getSize() <= 0) {
this.logger.info(String.format("doAddImageByGroupId result:%s", ConstantConfigUtil.StateConstant.FAILURE));
response.sendError(400, "Lack of parameter!");
return;
}
this.logger.info("ContentType: " + imageFile.getContentType());
String fileDirectoryName = new StringBuffer().append(this.imageFilePath).append(File.separator).append(DateUtil.parseDateToStrDateIsNullReturnNow(null, DateUtil.DEFAULT_FORMAT_TEMPLATE)).toString();
System.out.println(this.getImageFilePath());
File directoryFile = new File(fileDirectoryName);
if (!directoryFile.exists()) {
directoryFile.mkdirs();
}
String fileName = new StringBuffer().append(fileDirectoryName).append(File.separator).append(rowId).append(".jpg").toString();
this.logger.info("fileName: " + fileName);
File resultFile = new File(fileName);
if (!resultFile.exists()) {
resultFile.createNewFile();
}
//此方法必须文件存在.
int fileCopyResult = FileCopyUtils.copy(imageFile.getInputStream(), new FileOutputStream(resultFile));
this.logger.info("fileCopyResult: " + fileCopyResult);
//--------------------------------------------------------------
String fileUploadPath = fileName.replace(imageFilePath,"");
image.setFilePath(fileUploadPath);
image.setImageDetails(imageDetails);
image.setIndex(Integer.parseInt(orderIndex));
image.setState(String.valueOf(StringUtil.IMAGE_SHOW));
String dateStr = "";
if (StringUtils.isBlank(cdate)) {
dateStr = DateUtil.parseDateToStrDateIsNullReturnNow(null, DateUtil.FORMAT_TEMPLATE_STR_1);
}else{
dateStr = cdate;
}
image.setCreateDate(dateStr);
image.setGroupId(groupId);
//在组下添加图片
int addResult = this.imageService.addImage(image);
if (addResult > 0) {
//成功.
this.logger.info(String.format("doAddImageByGroupId result:%s", ConstantConfigUtil.StateConstant.SUCCESS));
response.getWriter().print(ConstantConfigUtil.StateConstant.SUCCESS);
} else {
//失败.
this.logger.info(String.format("doAddImageByGroupId result:%s", ConstantConfigUtil.StateConstant.FAILURE));
response.getWriter().print(ConstantConfigUtil.StateConstant.FAILURE);
}
response.setStatus(200);
}