您的位置:首页 > 编程语言 > Java开发

spring实现文件上传

2015-07-02 17:12 302 查看
1.jsp页面直接引入

    <script type="text/javascript" src="js/jquery/jquery-1.9.1.js"></script>

    <script type="text/javascript" src="js/jquery/ajaxfileupload.js"></script>

    <script type="text/javascript" src="js/jquery/jquery.json-2.4.js"></script>

    <script type="text/javascript">

    //定时器对象

    var uploadProcessTimer = null;

    function ajaxFileUpload()

    {

        $.ajaxFileUpload

        ({

            url:'/upload/mvc/upload.do',

            secureuri:false,

            fileElementId:'fileToUpload',

            dataType: 'json',

            data:{name: $('#name').val()},

            success: function (data, status)

            {

                //清除定时器

                if(uploadProcessTimer) {

                    window.clearInterval(uploadProcessTimer);

                }

                $('#loading').hide();

                var message = data['message'];

                var code = data['code'];

                if(code != 200) {

                    $('#fileUploadProcess').html('0%');

                }

                if(message)

                {

                    alert(data.message);

                }

            },

            error: function (data, status, e)

            {

                //清除定时器

                if(uploadProcessTimer) {

                    window.clearInterval(uploadProcessTimer);

                }

                $('#loading').hide();

                //这里处理的是网络异常,返回参数解析异常,DOM操作异常

                alert("上传发生异常");

            }

        })

        return false;

    }

    </script>

    附件:<input id="fileToUpload", name="file" type="file" class="input"> <br/>

    <br><br>

    <input type="button" onclick="return ajaxFileUpload();" value="上传"><br/>

java:

    @RequestMapping(value = "upload", method = RequestMethod.POST)

    public @ResponseBody Map<String, Object> fileUpload(

            @RequestParam("file") CommonsMultipartFile file,

            HttpSession session, HttpServletRequest request,

            HttpServletResponse response) throws Exception {

        // 清除上次上传进度信息

        String saveDirectoryPath = Constants.UPLOAD_PLATFORM + "/" + uploadFolderName;

        

        File saveDirectory = new File(saveDirectoryPath);

        if (!saveDirectory.exists()) {

            saveDirectory.mkdir();

        }

        // 判断文件是否存在

        if (!file.isEmpty()) {

            String fileName = file.getOriginalFilename();

            file.transferTo(new File(saveDirectory, fileName));

        }

        return State.OK.toMap();

    }

public enum State {

    OK(200, "上传成功"),

    ERROR(500, "上传失败"),

    OVER_FILE_LIMIT(501, "超过上传大小限制"),

    NO_SUPPORT_EXTENSION(502, "不支持的扩展名");

    private int code;

    private String message;

    private State(int code, String message) {

        this.code = code;

        this.message = message;

    }

    public int getCode() {

        return code;

    }

    public String getMessage() {

        return message;

    }

    public Map<String, Object> toMap() {

        Map<String, Object> map = new HashMap<String, Object>();

        map.put("code", this.code);

        map.put("message", this.message);

        return map;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: