上传文件功能笔记

用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;
    }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值