• springmvc 上传下载


    直接上代码

    <form id="uploadForm">
                            <input id="file" type="file" name="file">
                        </form>
                        <a href="javascript:;" onclick="upload()">确认上传</a>
    

      

    function upload(){
                var formData = new FormData($( "#uploadForm" )[0]);
                var size = $("#file")[0].files[0].size;
                if(size>1024*1024*10){
                    alert("上传的文件不能超过10MB");
                    return;
                }
                var xmbh = '${model.xmbh}';
                formData.append("xmbh",xmbh);
                $.ajax({
                    url: 'uploadFile' ,
                    type: 'POST',
                    data: formData,
                    async: false,
                    processData: false,
                    contentType: false,
                    success: function (data) {
                        var reJson = eval('(' + data.replace(/^ss*/, '' ).replace(/ss*$/, '' ) + ')');
                        var msg = reJson.msg;
                        if(msg=='success'){
                            var name = reJson.name;
                            var path = reJson.path.substr(1,reJson.path.length);
                            var size = reJson.size;
                            alert("文件上传成功,文件名:"+name+",文件大小:"+size);
                            $("#fujian").append('    <a href="'+path+'/'+name+'" target="_blank">'+name+'</a>');
                        }else{
                            alert(msg);
                        }
                    }
                });
            }
    

      

      

    /**
         * 上传文件
         *
         * @param file
         * @param request
         * @return
         * @throws IOException
         */
        @RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
        @ResponseBody
        public String uploadFile(@RequestParam("file") MultipartFile file, @RequestParam("xmbh") String xmbh, HttpServletRequest request) throws IOException {
            Map<String, String> reMap = new HashMap<>();
            if (!file.isEmpty()) {
                // 根据项目编号查询附件
                String fujian = duociduizhangService.getSqzlfjByXmbh(xmbh);
                // 上传的文件名称
                String name = file.getOriginalFilename();
                //文件大小
                String size = TmFileUtil.countFileSize(file.getSize());
                // 文件后缀
                String ext = TmFileUtil.getExtNoPoint(name);
                if(ext!=null){
                    if(ext.equals("exe") || ext.equals("bat") || ext.equals("sh") || ext.equals("dat")){
                        reMap.put("msg", "该格式文件不能上传");
                        return mapper.writeValueAsString(reMap);
                    }
                }
                //防文件重复提交
                if (fujian != null && fujian.contains("?")) {
                    String[] arr = fujian.split("\?");
                    for (String s : arr) {
                        if (s.equals(name)) {
                            reMap.put("msg", "不能上传同名文件");
                            return mapper.writeValueAsString(reMap);
                        }
                    }
                } else if (fujian != null && fujian.equals(name)) {
                    reMap.put("msg", "不能上传同名文件");
                    return mapper.writeValueAsString(reMap);
                }
                String path = request.getSession().getServletContext().getRealPath(SysUtils.getProperty("uploadPath") + "/" + xmbh);
                // 设置需要上传到哪个目录去,绝对路径
                File parent = new File(path);
                if (!parent.exists()) parent.mkdirs();
                //存储文件
                file.transferTo(new File(parent, name));
                if (fujian == null) {
                    duociduizhangService.updateSqzlfjByXmbh(name, xmbh);
                } else {
                    duociduizhangService.updateSqzlfjByXmbh(fujian + "?" + name, xmbh);
                }
    
                reMap.put("msg", "success");
                reMap.put("name", name);
                reMap.put("path", SysUtils.getProperty("uploadPath") + "/" + xmbh);
                reMap.put("size", size);
                return mapper.writeValueAsString(reMap);
            } else {
                reMap.put("msg", "上传失败,上传的文件为空");
                return mapper.writeValueAsString(reMap);
            }
        }
    

      

      

    /**
         * 下载文件
         *
         * @return
         * @throws IOException
         */
        @RequestMapping(value = "/upload/{xmbh}/{filename:.+}")
        public ResponseEntity<byte[]> download(@PathVariable("xmbh") String xmbh, @PathVariable("filename") String filename,HttpServletRequest request) throws IOException {
            System.out.println("xmbh = " + xmbh);
            System.out.println("filename = " + filename);
            String dfileName = new String(filename.getBytes("gb2312"), "iso8859-1");
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
            headers.setContentDispositionFormData("attachment", dfileName);
    
            String Path = SysUtils.getProperty("uploadPath")+"/"+xmbh+"/"+filename;
            Path = request.getSession().getServletContext().getRealPath(Path);
            return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(new File(Path)), headers, HttpStatus.CREATED);
        }
    

      

  • 相关阅读:
    记一次网易前端实习面试
    你知道吗?Web的26项基本概念和技术
    CSS 颜色代码大全
    研究旧项目, 常用 sql 语句
    Asp.net core 学习笔记 QR code and Barcode
    Html to PDF
    Asp.net core 学习笔记 Node Service
    Asp.net core Identity + identity server + angular + odata + 权限管理
    Angular Material (Components Cdk) 学习笔记 Table
    es6 getter setter
  • 原文地址:https://www.cnblogs.com/yanqin/p/6476371.html
Copyright © 2020-2023  润新知