Java中实现文件上传下载及删除

/**
     * 文件上传及修改
     * @param mFile
     * @param files
     * @param request
     * @param response
     * @return
     */
    @RequestMapping("import")
    @ResponseBody
    public Object importFile(@RequestParam(value = "file", required=false) MultipartFile mFile,Files files,
            HttpServletRequest request, HttpServletResponse response) {
        String fileName = mFile.getOriginalFilename();
        String filePath = "/uploadFile/" + fileName;
        try {
            File file = new File("D:/" + filePath);
            if (file.exists()) {
                file.delete();
                file.mkdirs();
            } else {
                file.mkdirs();
            }
            mFile.transferTo(file);
            if (files.getId()!=null) {
                Files files1 = filesService.selectByPrimaryKey(files.getId());
                if (files1.getId() == files.getId()) {
                    files.setUrl(filePath);
                    files.setCreatetime(new Date());
                    filesService.updateByPrimaryKeySelective(files);
                    return renderStatus(true, "更新成功!", null);
                }
            }else {
                Files f = new Files();
                f.setName(files.getName());
                f.setContent(files.getContent());
                f.setUid(files.getUid());
                f.setUrl(filePath);
                f.setCreatetime(new Date());
                f.setState(files.getState());
                filesService.insertSelective(f);
                return renderStatus(true, "新增成功!", null);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return renderStatus(false, "新增失败!", null);
    }
       /**
     * 下载文件
     * @param fileName
     * @param request
     * @param response
     */
    @RequestMapping("downFile")  
    public void downFile(String fileName,HttpServletRequest request,HttpServletResponse response) {  
        try {  
            fileName = new String(fileName.getBytes("iso8859-1"), "UTF-8");  
            String newFileName = fileName.substring(fileName.lastIndexOf("/")+1);
            String path = “"D:/" + fileName;
            // 得到要下载的文件  
            File file = new File(path);  
            // 如果文件不存在  
            if (!file.exists()) {  
                request.setAttribute("message", "您要下载的资源已被删除!!");  
                return;  
            }  
            // 设置响应头,控制浏览器下载该文件  
            response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(newFileName, "UTF-8"));  
            // 读取要下载的文件,保存到文件输入流  
            FileInputStream in = new FileInputStream(path);  
            // 创建输出流  
            OutputStream out = response.getOutputStream();  
            // 创建缓冲区  
            byte buffer[] = new byte[1024];  
            int len = 0;  
            // 循环将输入流中的内容读取到缓冲区当中  
            while ((len = in.read(buffer)) > 0) {  
                // 输出缓冲区的内容到浏览器,实现文件下载  
                out.write(buffer, 0, len);  
            }  
            // 关闭文件输入流  
            in.close();  
            // 关闭输出流  
            out.close();  
        } catch (Exception e) {  
      
        }  /**
     * 文件删除
     * @param id
     * @param request
     * @param response
     * @return
     */
    @RequestMapping(value="deletefile")
    @ResponseBody
    public Object deletefile(String[] id,HttpServletRequest request,HttpServletResponse response){
        try {
            if(id != null){
                int successnum = 0;
                int errornum = 0;
                for (int i = 0; i < id.length; i++) {
                    Files f = filesService.selectByPrimaryKey(Integer.parseInt(id[i]));
                    if(f != null){
                        String fileName = new String( f.getUrl().getBytes("UTF-8"), "UTF-8"); 
                        String path = “"D:/" + fileName;
                        File file = new File(path);
                        if(file.exists()){
                            file.delete();
                        }
                        successnum += filesService.deleteByPrimaryKey(f.getId());
                    }else{
                        errornum += 1;
                    }
                }
                return renderStatus(true, "成功删除"+successnum+"条数据!失败"+errornum+"条数据!", null);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return renderStatus(false, "删除失败!", null);
    }
}
   

如果此文章有帮助到您,还请施舍施舍

​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值