springMVC 实现上传文件和下载文件

第一步:在applicationContext.xml中添加支持<!-- 支持文件上传 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
第二步:

/**     * 上传文件     *     * @param file     * @param request     * @param model     * @return     */    @RequestMapping(value = "/upload")    public String upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, ModelMap model) {        //如果文件为空则返回uploadTxt.jsp        if (file.isEmpty()) {            return "uploadTxt";        }        System.out.println("start upload file");        String path = request.getSession().getServletContext().getRealPath("upload");        String fileName = file.getOriginalFilename();//        //如果文件格式不是txt,返回uploadTxt.jsp//        if (!fileName.endsWith("txt")) {//            return "uploadTxt";//        }        System.out.println("fileName====>  " + fileName);//        String fileName = new Date().getTime()+".jpg";        System.out.println("file path:" + path);        File targetFile = new File(path, fileName);        if (!targetFile.exists()) {            //创建目录            targetFile.mkdirs();        }        try {            file.transferTo(targetFile);        } catch (Exception e) {            e.printStackTrace();        }        model.addAttribute("fileUrl", request.getContextPath() + "/upload/" + fileName);        return "forward:/list";    }

/**     * 获取上传路径上的所有文件     *     * @param request     * @return     */    @RequestMapping("/listFile")    public ModelAndView list(HttpServletRequest request) {        String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/";        ModelAndView modelAndView = new ModelAndView();        File uploadDest = new File(filePath);        String[] fileNames = uploadDest.list();//        for (int i = 0; i < fileNames.length; i++) {//            //输出所有文件名//            System.out.println(fileNames[i]);//        }        String jsonString = JSON.toJSONString(fileNames);        modelAndView.addObject("fileNamesJsonString", jsonString);        System.out.println(jsonString);        modelAndView.setViewName("listFile");        return modelAndView;    }

/** * download File * * @param request * @param fileName * @return * @throws IOException */@RequestMapping("/download")public ResponseEntity<byte[]> download(HttpServletRequest request, @RequestParam("fileName") String fileName) throws IOException {    String path = request.getServletContext().getRealPath("/upload/");    File dwFile = new File(path + File.separator + fileName);    HttpHeaders headers = new HttpHeaders();    //下载显示的中文名,解决中文名称乱码问题    String downloadFileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");    //application/octet-stream:二进制流数据    headers.setContentDispositionFormData("attachment", downloadFileName);    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(dwFile), headers, HttpStatus.CREATED);}
时间: 2024-10-08 11:18:40

springMVC 实现上传文件和下载文件的相关文章

ssh批量登录 上传 执行命令 下载文件

用途: 搞linux主机的内网,拿到通用的账户密码,批量登录,上传系统信息收集脚本,把执行的结果拉回本地,用于分析. 缺点: 不支持多线程  密码必须正确切可连通  端口硬编码为22 如果不是22 请自行修改 执行过程: 执行ssh.py root root 会自动登录ssh,上传本地文件目录下的1.py文件到linux服务器tmp目录,执行/tmp/1.py文件,删除/tmp/1.py文件,把1.py执行的文件的生成的test.txt下载回本地.注意:下载的文件名已硬编码在1.py文件28行,

FTP文件操作 上传文、 下载文件、删除文件 、创建目录

/// <summary> /// FTP上传文件 /// </summary> /// <param name="fileUpload">上传控件</param> /// <param name="ftpServerIP">上传文件服务器IP</param> /// <param name="ftpUserID">服务器用户名</param> ///

腾讯对象存储服务COS加密签名上传文件与下载文件的剖析,福利提供给所有使用Android的小伙伴们!

在做一些用户需求的时候,公司往往需要工程师采集到更多有用的关于用户的个人信息,然后对用户群进行分析,今天我不是来分析这些的,今天我主要是说 腾讯推出的款云产品,那就是对象存储服务COS,这个产品面向所有开发者,新用户都有免费享有10G的使用权,10G可能对于做方案的工程师来说可能是微不 足道的,比如后视镜和车载方案,会常常需要用到视频的存储与云分享,当然这里不是只本地存储哦,我指的是用户在使用方案商的方案的时候,比如他开车 的时候录了一段视频需要分享到某个域,共享给大家看,比如微信,这时候他肯定

【SpringMVC】使用SpringMVC进行上传文件!

写在前面: 之前在上传文件的时候,使用的是commons-file-upload这个插件,非常方便,能控制每个文件的大小,总共大小,缓存,以及支持多个文件的同时上传,但是写一次上传文件的后台代码量太大了,如图 如果有多个地方都要上传文件,每一次都要复制,粘贴一遍又一遍,实在是太麻烦,后台想到能不能把相同的代码都封装到一个方法,然后需要使用的时候再稍微改一下就行了,在封装的过程中,发现原来SpringMVC有自带的上传文件组件,遂用了一下,感觉多然很方面! 下面详细的说一下使用步骤! 1,准备好相

简单的上传文件和下载文件

简单的上传文件和下载文件: request.setCharacterEncoding("utf-8"); / *设置编码格式 */ response.setContentType("application/msword");  /*使浏览器能区分数据的种类,这里是word文件类型*/ Part part = request.getPart("files"); /*取的需要上传的文件*/ String path = this.getServletC

svn上传工程之后下载,打开下载之后的工程缺少文件

当我们把iOS的工程上传到SVN中,当我们再从SVN中下载下来,就会出现错误,这是什么原因呢?我这里出现的错误是找不到文件,后来知道原来是被屏蔽掉了,就是上传的时候不上传某个类型的文件.例如我出错就是没有.o文件.现在我们来看怎么设置. 首先打开SVN,打开SVN的偏好设置,就是出来下方的图案. 点击之后选择下方的按钮,你可以看到下方就是被屏蔽掉的文件格式,如果不想被屏蔽掉,直接删除掉就可以了.然后进行上传,这次再下载下来跑起程序,就不会有错误了.

Struts2实现文件的上传与动态下载功能。

本篇主要使用Struts2实现文件的上传与动态下载功能.出于安全考虑,所以,在硬盘上存储上传的文件的时候,统一都重新命名为随机字符串.用数据库存储真实文件名与随机文件名称之间的关联. 下面的是实体类 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class FileBag implements java.io.Serializable {     // Fields     private Integer id;   //Id编号     privat

springmvc - 文件上传 - 使用阿里oss文件

公司用到了 阿里的文件服务器 oss ,我们之前用的是springmvc的上传文件. 首先增加阿里的jar到我的maven项目. 复制下面的sample这些java类.. public class OSSObjectSample {  private static final String ACCESS_ID = "****";  private static final String ACCESS_KEY = "****";  private static fin

Java ftp 上传文件和下载文件

今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接:http://blog.csdn.net/yucaifu1989/article/details/51483118 为了方便大家对比,我吧文章代码偷了过来: import java.io.File; import java.io.FileInputStream; import java.io.Fil

httpclient 上传文件、下载文件

用httpclient4.3 post方式推送文件到服务端   准备:httpclient-4.3.3.jar:httpcore-4.3.2.jar:httpmime-4.3.3.jar 标签: <无> 代码片段(1)[全屏查看所有代码] 1. [代码][Java]代码 /**  * 上传文件  * @throws  ParseException  * @throws  IOException  */    publicstaticvoidpostFile()throwsParseExcept