上传文件功能笔记

来源:互联网 发布:oracle 数据块大小 编辑:程序博客网 时间:2024/06/16 23:34

用js异步提交json数据的方式写一个上传文件的功能

HTML代码<div class="form-group"><label class="col-md-2 control-label">上传文件:</label><div class="col-md-8"><input type="file" onchange="getFile(this)"></div>
js代码  function getFile(thisObj) {        //获取文件详细内容(路径等)        var file = thisObj.files[0];        var fileName = file.name;        //查询文件名的后缀        var suffixName = fileName.substring(fileName.lastIndexOf(".")+1);        //判断文件格式是否满足要求        if (suffixName.toLowerCase() !='apk'){            alert.msg("上传文件格式不正确!");            return;        }        //loading层        var index = layer.load(1, {            shade: [0.1,'#fff'] //0.1透明度的白色背景        });        var formData = new FormData();        formData .append("file", file);        $.ajax({        url: './importFile' ,        type: 'POST',        data: formData,        cache: false,        contentType: false,        processData: false,        success: function (data) {            alert("上传保存成功")            $("#updateUrl").val(data.path);        },        error: function (data) {            console.log(data);            alert("上传文件失败")        }    });        //手动关闭loading层        layer.close(index);    }
controller层方法/** *  * @param multipartfile * @return * @throws IOException */  @RequestMapping(value = "/importFile")  @ResponseBody    public Object idIdentification(@RequestParam("file") MultipartFile multipartfile) throws IOException {        Map<String,Object> map = new HashMap();        //返回文件路径(saveAttachment为封装过后的方法调用)        String filePath = FileUtil.saveAttachment(multipartfile);        //将路径放入map中        map.put("path",filePath);        return map;    }
saveAttachment封装的方法/**     * 文件存储 完整路径({user.home}/pfxm/attach/XXX.XX)<== http://domain/attach/file/XXX.xx     * @param file     * @return 返回相对路径(attach/file/xxx.xx)     */    public static String saveAttachment(MultipartFile file) {    String path = Constant.UPLOAD_PATH + Constant.ATTACHMENT_FILE_NAME;    String saveName = System.currentTimeMillis() + "." +  getFileSuffix(file.getOriginalFilename(), Constant.TYPE_FILE_SUFFIX);        logger.debug(" --- 文件保存路径:{}, 文件保存名称:{} --- ", path, saveName);        // 保存        try {            // 保存文件            File targetFile = new File(path);            if (!targetFile.exists()) {                targetFile.mkdirs();            }            file.transferTo(new File(path + "/" + saveName));        } catch (Exception e) {            e.printStackTrace();            logger.debug(" --- 文件保存异常:{} --- " + e.getMessage());            return null;        }        return Constant.VIRTUAL_ATTACHMENT_FILE_PATH + "/" + saveName;    }

本人项目笔记,如若看不懂还请查询其他资料

原创粉丝点击