后台关键代码String filePath = null;
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
filePath = session.getServletContext().getRealPath("/upload");
//不存在就创建
File file = new File(filePath);
if (!file.exists() && !file.isDirectory()) {
System.out.println("文件夹不存在");
file.mkdir();
}
filePath = filePath + "\\" + uuid + ".jpg";
try {
//俩种方式解密Base64 后者更简单
/* // Base64
byte[] b;
b = decoder.decodeBuffer(imgStr.split(",")[1]);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
*/
//因为BASE64Decoder的jar问题,此处使用spring框架提供的工具包
byte[] b = Base64Utils.decodeFromString(imgStr.split(",")[1]);
System.out.println(filePath);
OutputStream out = new FileOutputStream(filePath);
out.write(b);
out.flush();
out.close();
} catch (Exception e) {
String json = "{\"result\":\"服务器异常\"}";
return json;
}
String imgePath = "upload/" + uuid + ".jpg";
String json = "{\"result\":\"ok\",\"file\":\""+imgePath+"\"}";
System.out.println(json);
return json;
}
上传成功图
项目结构
SpringMVC上传文件配置
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
注意springmvc的静态资源配置,