jQuery使用Base64 生成图片预览和java后台不同的接收处理方式

原文地址:https://blog.csdn.net/davidchong210/article/details/49756575

本文主要解决移动或者pc端上传图片及生成预览的问题
1.jQuery 生成base64编码,前台预览
2.jsp 自定义上传按钮两种方式的上传 input file 和 input hidden
3.java后台两种方式的上传操作 SpringMvc自身的上传机制和Base64解码上传的操作

jQuery代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Jsp代码

上传
 
提交

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
java代码

@RequestMapping("uploadImg")
public ModelAndView uploadImg(String[] baseFile, HttpServletRequest request) throws IllegalStateException, IOException{

ModelAndView mav = new ModelAndView();
mav.setViewName("MyJsp");
mav.addObject("mes", "Success!!!");

/**
 * springMvc 上传图片
 * 1.enctype属性的属性值设为multipart/form-data。
 * 2.input的type属性的属性值设为file。
 * 后台就可以使用multipartResolver获取到前台上传的文件
 */
/*
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
if(multipartResolver.isMultipart(request)){
    MultipartHttpServletRequest multipertRequest = (MultipartHttpServletRequest)request;
    Iterator<String> iter = multipertRequest.getFileNames();
    //上传一张图片时可以直接使用这个
    //MultipartFile file11 = multipertRequest.getFile("files");
    //上传多张图片
    while (iter.hasNext()) {
        MultipartFile file = multipertRequest.getFile((String)iter.next());
        if(!file.isEmpty()){
            String path = request.getSession().getServletContext().getRealPath("uploadImg");
            String imageName = this.getImageName();
            //File.separator路径分隔符
            File savefile = new File(path+File.separator+imageName);
            //file.transferTo将上传的文件写入指定位置
            file.transferTo(savefile);
            }
        }
}*/

/**
* Base64 上传图片
*/
String path = request.getSession().getServletContext().getRealPath("uploadImg");
Base64 base64 = new Base64();
String[] imageNames = new String[baseFile.length];
//file 为前台隐藏域里面的字符串
if(baseFile!= null && baseFile.length!=0){
int index = 0;
for (String base64Str : baseFile) {
//base64 解码
byte[] byteArray = base64.decode(base64Str);
// 调整异常数据
for (byte b : byteArray) {
if(b<0)
b+=256;
}
String imageName = this.getImageName();
try {
OutputStream out = new FileOutputStream(path+File.separator+imageName);
out.write(byteArray);
out.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println(imageNames[0]);
}
imageNames[index] = path+File.separator+imageName;
index ++ ;
}
}
System.out.println(imageNames[0]);

return mav;
}

/**

  • 根据系统规则得到图片名称
    */
    public String getImageName(){
    return UUID.randomUUID().toString()+".jpg";
    }

猜你喜欢

转载自www.cnblogs.com/guohan/p/9446633.html