zoukankan      html  css  js  c++  java
  • 上传下载

    下载

    @RequestMapping("/file")
        public void downLoad(@RequestParam String fileUrl,@RequestParam String fileName, HttpServletResponse response) throws UnsupportedEncodingException {
    
            ResultData<String> diskUrlResultData = FileUtil.getLocalUrl(fileConfig.getAttribute(),fileUrl);
            if (!Objects.equals(ResultEnum.SUCCESS.getCode(),diskUrlResultData.getCode())){
                return;
            }
            String extName = FileUtil.getFileExtension(fileUrl);
            try {
                File file =new File(diskUrlResultData.getData());
                FileInputStream fileInputStream=new FileInputStream(file);
                response.setContentType("application/gorce-download");
                response.addHeader("Content-disposition","attachment;fileName="+fileName+"."+extName);
                OutputStream outputStream = response.getOutputStream();
                byte[] bytes = new byte[1024];
                int len = 0;
                while ((len = fileInputStream.read(bytes))!=-1){
                    outputStream.write(bytes,0,len);
                }
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
    

      上传

    @PostMapping("/single")
        public ResultData singleUpload(@RequestParam("file") MultipartFile file) {
    
            ResultData<FileIndex> fileIndexResultData = uploadFileBase(file);
            if (Objects.equals(ResultEnum.SUCCESS.getCode(), fileIndexResultData.getCode())){
                FileIndex fileIndex = fileIndexResultData.getData();
                fileIndexService.save(fileIndex);
                return ResultDataUtil.setSuccessResult(fileIndex.getNetPath());
            }
            return fileIndexResultData;
        }
    
        @PostMapping("/multiple")
        public ResultData multipleUpload(@RequestParam("files") List<MultipartFile> files) {
    
            MultipleFileResult multipleFileResult = new MultipleFileResult();
            multipleFileResult.setFileTotal(files.size());
            List<FileIndex> fileIndexList = new ArrayList<>();
            for (MultipartFile mTemp : files) {
                ResultData<FileIndex> resultData = uploadFileBase(mTemp);
                if (Objects.equals(ResultEnum.SUCCESS.getCode(),resultData.getCode())) {
                    multipleFileResult.getResultMap().put(mTemp.getOriginalFilename(),resultData.getData().getNetPath());
                    multipleFileResult.setSuccessCount(multipleFileResult.getSuccessCount()+1);
                    fileIndexList.add(resultData.getData());
                }else {
                    multipleFileResult.getFailureFileNames().add(mTemp.getOriginalFilename());
                }
            }
            if (fileIndexList.size()>0){
                fileIndexService.saveAll(fileIndexList);
            }
            return ResultDataUtil.setSuccessResult(multipleFileResult);
        }
    
        /**
         * @Author AlanMa
         * @Description 上传文件
         * @Date 2019/11/6
         * @Param [file]
         * @return com.hiynn.data.visual.file.vo.ResultData
         */
        private ResultData<FileIndex> uploadFileBase(MultipartFile file) {
    
            ResultData<FileIndex> resultData = UploadUtil.getUploadInfo(fileConfig,file);
            if (!Objects.equals(ResultEnum.SUCCESS.getCode(),resultData.getCode())) {
                return resultData;
            }
            FileIndex fileIndex = resultData.getData();
            File dest = new File(fileIndex.getStoragePath());
            try {
                file.transferTo(dest);
                return ResultDataUtil.setSuccessResult(fileIndex);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return ResultDataUtil.setFailedResult();
        }
    

      

  • 相关阅读:
    CF 461B Appleman and Tree
    POJ 1821 Fence
    NOIP 2012 开车旅行
    CF 494B Obsessive String
    BZOJ2337 XOR和路径
    CF 24D Broken robot
    POJ 1952 BUY LOW, BUY LOWER
    SPOJ NAPTIME Naptime
    POJ 3585
    CF 453B Little Pony and Harmony Chest
  • 原文地址:https://www.cnblogs.com/matd/p/11813885.html
Copyright © 2011-2022 走看看