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

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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk