上传文件到服务器

    @Override
    public void uploadFile(MultipartFile file) {
     // 构建上传文件路径和名字
        String oriName = file.getOriginalFilename();
        // ie低版本浏览器会获取到盘符路径,谷歌不会,故再转一次获取
        String fileName =new File(oriName).getName();
        String targetPath = ymlConfig.getApplyTablePath() + DateUtil.DateToString(new Date(), DateStyle.YYYYMMDD)+ "/" + fileName;
        File targetFile = new File(targetPath);
      // 判断文件夹是否未空,空则创建          
        if (!targetFile.exists()) {
            if (!targetFile.getParentFile().exists()) {
                targetFile.getParentFile().mkdirs();
            }
            targetFile.createNewFile();
        }
// 用工具类把文件写入到服务器本地 FileUtil.inputStreamToFile(file.getInputStream(), targetFile); }
/** * 上传时获取MultipartFile的流暂存到服务器本地 * @param ins * @param file */ public static void inputStreamToFile(InputStream ins, File file) { try { if (!file.exists()) { if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } file.createNewFile(); } OutputStream os = new FileOutputStream(file); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.flush(); os.close(); ins.close(); } catch (Exception e) { log.catching(e); } }

 

posted @ 2020-05-08 16:30  Mark_Luo  阅读(307)  评论(0编辑  收藏  举报