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

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

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工