当前位置 博文首页 > 文章内容

    java 文件上传下载

    作者: 栏目:未分类 时间:2020-07-06 18:01:01

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    翻新十年前的老项目,文件上传改为调用接口方式,记录一下子~~~

      java后台代码:

    //取配置文件中的上传目录
        @Value("${uploadPath}")
        String path;
    
        //文件上传接口
        @RequestMapping(value = "upload")
        @ResponseBody
        public String getMobileAuthCode( HttpServletRequest request,String files ,String appId,String fileUUIDs,String  myCallback)
                throws Exception {
            //文件支持多个  以逗号分隔
            String[] file=files.split(",");
            //文件生成的uuid ,以逗号分隔,防止文件重名
            String[] fileUUID=fileUUIDs.split(",");
            //本地文件
            File localFile;
            InputStream input = null;
            OutputStream output = null;
            for (int i = 0; i <file.length ; i++) {
                localFile=new File(file[i]);
                String fileName = localFile.getName();
                //获取文件类型
                String filetype=fileName.substring(fileName.indexOf("."),fileName.length());
                try {
                    File var4 = new File(path+"\\" + appId);
                    //若目标地址不存在,则创建
                    if (!var4.exists() || var4.exists() && !var4.isDirectory()) {
                        var4.mkdirs();
                    }
                    //将本地文件 写入目标地址
                    input = new FileInputStream(localFile);
                    output = new FileOutputStream(new File(path + "\\" +appId+"\\"+ fileUUID[i]+filetype));
                    byte[] buf = new byte[1024];
                    int bytesRead;
                    while ((bytesRead = input.read(buf)) != -1) {
                        output.write(buf, 0, bytesRead);
                    }
                }catch (Exception e){
                    System.out.println("文件上传失败");
                    e.printStackTrace();
                }finally {
                    input.close();
                    output.close();
                }
            }
            String result =  "{'ret':'true'}";
            result=myCallback+"("+result+")";
            return result;
        }
        //文件下载
        @RequestMapping("downLoad")
        public ResponseEntity<byte[]> downloadFile(String fileUrl,String needFile) throws IOException {
            //获取文件路径
            HttpHeaders headers = new HttpHeaders();//http头信息
            File file = new File(path+"\\"+fileUrl);//新建一个文件
            String downloadFileName = new String(needFile.getBytes(), "iso-8859-1");
            //设置编码
            headers.setContentDispositionFormData("attachment", downloadFileName);
            headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
            return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
        }
    

       jsp 页面代码:

    //下载
    window.open("http://ip:port/file/downLoad?needFile="+filename+"&fileUrl="+fileurl);

      

    //上传
    
    $.ajax({
        url: "http://ip:port/file/upload",
        type: 'post',
        dataType:'jsonp',
        jsonp: "callback",
        data:{
            "files":files,
            "appId":contentForm.appId.value,
            "fileUUIDs":fileUUIDs
        },
        success: function (data) {
        }
    });