全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java web上传文件和下载文件代码片段分享

本文实例为大家分享了java web上传文件和下载文件的具体代码,供大家参考,具体内容如下

 /**
  * Purpose:上传文档
  * 
  * @param req
  * @param fileTitle
  * @param fileType
  * @param fileDesc
  * @return
  */
 @RequestMapping("upload")
 public ModelAndView upload(HttpServletRequest req, String fileType, String fileDesc, String share) {
  UserAllInfo userAll = (UserAllInfo) req.getSession().getAttribute("userAll");
  ModelAndView mav = new ModelAndView();
  // 获取文件的大小
  String fileSize = "";
  int length = req.getContentLength();
  //转换成KB
  double len1 = (double) (Math.round((length / 1024) * 100)) / 100;
  //转换成MB
  double len2 = (double) (Math.round((len1 / 1024) * 100)) / 100;
  if (len2 > 1) {
   fileSize = String.valueOf(len2) + "MB";
  } else {
   fileSize = String.valueOf(len1) + "KB";
  }
  //将请求转换成处理文件的请求
  MultipartRequest mreq = (MultipartRequest) req;
  //文件上传专用类
  MultipartFile mfile = mreq.getFile("uploadFile");

  // 得到上下文路径
  String root = req.getSession().getServletContext().getRealPath("/");
  File dir = new File(root);
  // 获取文件名和文件的mime类型
  String str = mfile.getOriginalFilename();
  String[] st = str.split("\\.");

  File savedFile = null;
  try {
   //在指定目录中创建一个新的空文件,文件名称加前缀"upload_"
   savedFile = File.createTempFile("upload_", mfile.getOriginalFilename(), dir);
   //将缓冲区的内容复制到新创建的文件中
   FileCopyUtils.copy(mfile.getInputStream(), new FileOutputStream(savedFile));
  } catch (Exception e) {
   e.printStackTrace();
  }
  String path = savedFile.getPath();

  // 将文件的信息封装在对象中
  FileInfo file = new FileInfo();
  if (userAll != null) {
   file.setUploadPersonId(userAll.getUser().getUserId());
  } else {
   mav.setViewName("login");
   return mav;
  }
  file.setFileName(st[0]);
  file.setFilePath(path);
  Date date = new Date();
  file.setUploadDate(date);
  file.setFileSize(fileSize);
  file.setFileType(fileType);
  file.setFileForm(st[1]);
  if ("superman".equals(userAll.getUser().getUserNumber())) {
   file.setFileShare("Y");
   file.setCheckFlag("Y");
  } else {
   file.setFileShare(share);
   file.setCheckFlag("N");
  }
  file.setDeleteFlag("N");
  file.setDownloadTimes(0);
  // 保存文件的信息
  boolean bool = fileSer.saveFile(file);
  String userNumber = userAll.getUser().getUserNumber();
  //设置跳转界面
  mav.setViewName("jsp/person/upload");
  logSer.saveLog("用户\"" + userNumber + "\"上传文件\"" + file.getFileName() + "\"");
  mav.getModel().put("bool", bool);
  return mav;
 }

 /**
  * Purpose:下载文档
  * 
  * @param fileId 文件id
  * @return
  */
 @RequestMapping("download")
 public void download(Integer fileId, HttpServletResponse resp) {
  FileInfo file = new FileInfo();
  //通过文件id获取文件的基本信息
  file = fileSer.getFileById(fileId);

  // 根据文件后缀名设置文件的mime类型
  String mime = "application/";
  switch (file.getFileForm()) {
  case "doc":
   mime = mime + "msword";
   break;
  case "docx":
   mime = mime + "msword";
   break;
  case "pdf":
   mime = mime + "pdf";
   break;
  case "xls":
   mime = mime + "vnd.ms-excel";
  case "ppt":
   mime = mime + "vnd.ms-powerpoint";
   break;
  case "txt":
   mime = "text/plain";
   break;
  default:
   break;
  }
  resp.setContentType(mime);
  String fileName = file.getFileName();
  String name = "";
  try {
   // 将文件名使用utf-8编码格式编码,使其中的中文字符可以正常显示
   name = URLEncoder.encode(fileName, "utf-8");
  } catch (UnsupportedEncodingException e1) {
   e1.printStackTrace();
  }

  // 弹框选择保存路径
  resp.setHeader("content-disposition", "attachment;filename=" + name + "." + file.getFileForm()
    + ";filename*=utf-8''" + name + "." + file.getFileForm());

  String filePath = file.getFilePath();
  InputStream is = null;
  OutputStream os = null;
  try {
   is = new BufferedInputStream(new FileInputStream(filePath));
   os = new BufferedOutputStream(resp.getOutputStream());
   byte[] buff = new byte[1024];
   @SuppressWarnings("unused")
   int count;
   while ((count = is.read(buff)) != -1) {
    os.write(buff);
   }
   //修改下载次数
   fileSer.update(fileId);
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   //最后,要记得关闭输入流和输出流
   if (is != null) {
    try {
     is.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   if (os != null) {
    try {
     os.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# java  # web  # 上传文件  # 下载文件  # JavaWeb 文件的上传和下载功能简单实现代码  # Javaweb实现上传下载文件的多种方法  # JavaWeb文件上传下载实例讲解(酷炫的文件上传技术)  # JavaWeb实现文件上传下载功能实例详解  # Java Servlet简单实例分享(文件上传下载demo)  # 转换成  # 文档  # 下载次数  # 使其  # 在对  # 跳转  # 大家分享  # 具体内容  # 到新  # 大家多多  # 正常显示  # 象中  # 文件上传  # 保存文件  # 上传  # 目录中  # 加前缀  # str  # getOriginalFilename 


相关文章: c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  微信推文制作网站有哪些,怎么做微信推文,急?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  电商平台网站制作流程,电商网站如何制作?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  威客平台建站流程解析:高效搭建教程与设计优化方案  宝塔新建站点为何无法访问?如何排查?  SQL查询语句优化的实用方法总结  自助网站制作软件,个人如何自助建网站?  南京网站制作费用,南京远驱官方网站?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  PHP 500报错的快速解决方法  TestNG的testng.xml配置文件怎么写  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何通过服务器快速搭建网站?完整步骤解析  建站之星后台管理:高效配置与模板优化提升用户体验  简历在线制作网站免费,免费下载个人简历的网站是哪些?  如何在万网ECS上快速搭建专属网站?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  浅析上传头像示例及其注意事项  专业商城网站制作公司有哪些,pi商城官网是哪个?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  如何构建满足综合性能需求的优质建站方案?  北京网站制作的公司有哪些,北京白云观官方网站?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  宝塔建站助手安装配置与建站模板使用全流程解析  香港服务器网站推广:SEO优化与外贸独立站搭建策略  宝塔建站无法访问?如何排查配置与端口问题?  如何通过商城免费建站系统源码自定义网站主题?  ,网页ppt怎么弄成自己的ppt?  建站之星如何助力网站排名飙升?揭秘高效技巧  如何在IIS中配置站点IP、端口及主机头?  如何在香港免费服务器上快速搭建网站?  如何通过远程VPS快速搭建个人网站?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  网站制作话术技巧,网站推广做的好怎么话术?  北京专业网站制作设计师招聘,北京白云观官方网站?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  如何选择适合PHP云建站的开源框架?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  ,怎么用自己头像做动态表情包?  成都响应式网站开发,dw怎么把手机适应页面变成网页? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。