且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

jquery.uploadify+spring mvc实现上传图片

更新时间:2022-10-04 22:22:33


一、前端页面

1.下载jquery.uploadify

去uploadify官网(http://www.uploadify.com/download/ )下载压缩包,解压后放在如下路径:

jquery.uploadify+spring mvc实现上传图片

2.html结构

form表单的上传控件部分:

1
2
3
4
5
6
7
8
<div class="control-group">
                <label class="control-label" for="coverImage">代表图</label>
                <div class="controls">
                    <input type="hidden" th:field="*{coverImage}">
                    <input class="input-file" id="fileInput" type="file">
                    <img id="previewCoverImage" src="#">
                </div>
            </div>

  

3.页面引入uploadify

1
2
<link rel="stylesheet" th:href="@{/static/uploadify/uploadify.css}”>
<script type="text/javascript" th:src="@{/static/uploadify/jquery.uploadify.js}"></script>

  

4.自定义上传代码

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
<script th:inline="javascript">
        /*<![CDATA[*/
        $(document).ready(function () {
            $("#fileInput").uploadify(
                {
                    'swf'/*[[@{/static/uploadify/uploadify.swf}]]*/,
                    'uploader'/*[[@{/upload/uploadCoverImage}]]*///后台action地址
                    'queueID''fileQueue',
                    'auto'true,
                    'multi'false,
                    'buttonText''上传图片',
                    'fileObjName''pic'//对应action中的参数字段名称
                    'width': 70,
                    'height': 20,
                    'onUploadSuccess'function (file, data, response) {
                        if (data != null) {
                            $("#coverImage").val(data); //赋值给hidden控件,便于提交form表单
                            $("#previewCoverImage").attr("src",data); //复制给img控件用来预览
                        }
                    }
                });
        });
        /*]]>*/
 
    </script>

  

二、站点配置

1.调整springmvc-servlet.xml文件,添加配置支持文件上传

1
2
<!-- 支持上传文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

  

2.添加maven依赖

1
2
3
4
5
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>

  

三、后台代码

1.controller

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@Controller
@RequestMapping("/upload")
public class UploadController {
 
    @RequestMapping(value = "/uploadCoverImage", method = RequestMethod.POST)
    @ResponseBody
    public String uploadCoverImage(@RequestParam("pic") CommonsMultipartFile pic, HttpServletRequest req, HttpServletResponse response) throws IOException {
        //上传文件信息
        String fileName = pic.getOriginalFilename();
        String fileType = fileName.split("[.]")[1];
 
        //生成文件信息
        String filePath = req.getSession().getServletContext().getRealPath(FilePathConst.COVER_IMAGE_UPLOAD);
        String uuid = UUID.randomUUID().toString().replace("-""");
        String uuidFileName = uuid + fileName;
 
        //保存文件
        File f = new File(filePath + "/" + uuid + "." + fileType);
        FileUtils.uploadFile(pic.getInputStream(), uuidFileName, filePath);
 
        return SiteConst.SITE_DOMAIN + FilePathConst.COVER_IMAGE_UPLOAD + uuidFileName;
    }
}

  

2.FileUtils工具类

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
public class FileUtils {
    public static void uploadFile(InputStream is, String fileName, String filePath) {
        FileOutputStream fos = null;
        BufferedOutputStream bos = null;
        BufferedInputStream bis = null;
        File file = new File(filePath);
        if (!file.exists()) {
            file.mkdirs();
        }
 
        File f = new File(filePath + "/" + fileName);
        try {
            bis = new BufferedInputStream(is);
            fos = new FileOutputStream(f);
            bos = new BufferedOutputStream(fos);
 
            byte[] bt = new byte[4096];
            int len;
            while ((len = bis.read(bt)) > 0) {
                bos.write(bt, 0, len);
            }
 
        catch (Exception e) {
            e.printStackTrace();
        finally {
            try {
                if (null != bos) {
                    bos.close();
                    bos = null;
                }
 
                if (null != fos) {
                    fos.close();
                    fos = null;
                }
                if (null != is) {
                    is.close();
                    is = null;
                }
 
                if (null != bis) {
                    bis.close();
                    bis = null;
                }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

  


    本文转自 陈敬(Cathy) 博客园博客,原文链接:http://www.cnblogs.com/janes/p/7611980.html,如需转载请自行联系原作者