图片文件上传

/**
     * 通用上传请求
     */
    @PostMapping("/common/upload/file")
    @ResponseBody
    public AjaxResult uploadFiles(MultipartFile file) {
        if (file != null) {
            InputStream in = null;
            OutputStream out = null;
            try {
                int BUFFER_SIZE = 16 * 1024;
                Calendar c = Calendar.getInstance();
                String fileName = file.getOriginalFilename();
                // 拼接完整路径
                String filePath = DictUtils.getDictData("file_upload_config", "file_upload_path");
                filePath+= DateUtils.parseDateToStr(DateUtils.YYYYMMDD,DateUtils.getNowDate());
                File dstFile = new File(filePath);
                if (!dstFile.exists()) {
                    dstFile.mkdirs();
                }
                // 文件名
                String newFileName = c.getTimeInMillis() + RandomUtils.generateNumString(4) + fileName.substring(fileName.lastIndexOf("."));
                dstFile = new File(filePath +"/"+ newFileName);

                in = new BufferedInputStream(file.getInputStream(), BUFFER_SIZE);
                out = new BufferedOutputStream(new FileOutputStream(dstFile), BUFFER_SIZE);
                byte[] buffer = new byte[BUFFER_SIZE];
                int len = 0;
                while ((len = in.read(buffer)) > 0) {
                    out.write(buffer, 0, len);
                }
                // 文件信息
                AjaxResult ajax = AjaxResult.success();
                ajax.put("fileName", fileName);
                ajax.put("url", filePath+"/"+newFileName);
                return ajax;
            } catch (Exception e) {
                log.error("文件上传异常", e);
            } finally {
                try {
                    if (in != null) {
                        in.close();
                        in = null;
                    }
                    if (out != null) {
                        out.close();
                        out = null;
                    }
                } catch (IOException e) {
                    return AjaxResult.error(e.getMessage());
                }
            }
        }
        return null;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值