工作总结之---上传下载图片文件

2024-08-27 10:18

本文主要是介绍工作总结之---上传下载图片文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    /**
     * @Title: setData
     * @Description: 上传文件,将文件信息保存到数据库,前台from提交
     * @return: void
     */
    @RequestMapping(value = "/saveData", method = RequestMethod.POST)
    @ResponseBody
    public void saveData(HttpServletRequest request, HttpServletResponse response, TribuneInfoModel tribuneInfoModel) throws IOException{
        //保存帖子除文件外其他信息
        DefaultMultipartHttpServletRequest multipartHttpServletRequest = (DefaultMultipartHttpServletRequest)request;
        String id = UUID.randomUUID().toString().substring(0, 32);
        PrintWriter out = null;
        try {
          List<MultipartFile> multipartFileList = multipartHttpServletRequest.getMultiFileMap().get("file2");//多个文件上传
//        MultipartFile multipartFile2 = multipartHttpServletRequest.getFile("file2");//单个文件上传
            Properties properties = ConfigUtil.PROPERTIES;
            String path = properties.getProperty("imageResourcrsPath");//虚拟路径对应的服务器的真实路径,映射名称为/resource
            path = path + "/file";//文件上传真实路径
            String relativePath ="/resource/file";
            com.tails.system.model.treasure.File  file=new com.tails.system.model.treasure.File();//文件信息实体类
            for(int i=0; i<multipartFileList.size(); i++){
                String fileName2 = multipartFileList.get(i).getOriginalFilename();
                if(fileName2 == null || "".equals(fileName2)){
                    continue;
                }
                File file2 = new File(fileName2);
                File newFile2 = FileUtil.renameFile(file2);//上传文件重命名
                String newFileName2 = newFile2.getName();
                File targetFile2 = new File(path, newFileName2);
                if(!targetFile2.exists()){
                    targetFile2.mkdirs();
                }
                multipartFileList.get(i).transferTo(targetFile2);
                file.setBusinessId(id);
                file.setBusinessType("2");
                file.setFileName(fileName2);
                file.setFilePath(relativePath+"/"+newFileName2);
                fileService.addFile(file);//保存文件信息
            }
            out = response.getWriter();
            out.flush();
            out.println("<script>alert('新增成功');window.location.href='/tribuneInfo/tribuneInfoList';</script>");
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
            out.flush();
            out.println("<script>alert('新增失败');window.location.href='/tribuneInfo/addTirbuneInfo';</script>");
            out.close();
        }
    }
    
    /**
* <p>
* Description: 上传文件重命名
* </p>

* @param file
*            文件名
* @return 文件
* @author : gaoying
* @update :
* @date : 2015-7-26
*/
public static File renameFile(File file) {
String body = "";
String ext = "";
Date date = new Date();
int pot = file.getName().lastIndexOf(".");
if (pot != -1) {
// body = date.getTime() + "";
body = UUID.randomUUID().toString().replace("-", "");
ext = file.getName().substring(pot);
} else {
body = (new Date()).getTime() + "";
ext = "";
}
String newName = body + ext;
file = new File(file.getParent(), newName);
return file;
}


/**

     * @Title:
     * @Description: 文件下载
     * @return: void
     */
    @RequestMapping(value = "/dlFile")
    public String downloadTemplateFile(HttpServletRequest request, HttpServletResponse response) {
        try{
            String fileSavePath = request.getParameter("filePath");//文件上传保存的真实路径
            String fileName = request.getParameter("fileName");
            File f = new File(fileSavePath);
            if(!f.exists()){
                f.createNewFile();
            }
            BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
            byte[] buf = new byte[1024];
            int len = 0;
            response.reset();
            response.setContentType("application/x-msdownload");
            response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8"));
            OutputStream out=response.getOutputStream();
            while ((len = br.read(buf))>0){
                out.write(buf,0,len);
            }
            out.flush();
            br.close();
            out.close();
        }catch(Exception e){
            e.printStackTrace();
        }
        return null;
    }

这篇关于工作总结之---上传下载图片文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111385

相关文章

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4