此处是前台代码,上传文件框,下载文件链接。

<form method="post" action="" id="form1" name="form1"enctype="multipart/form-data"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td><img src="../images/arrow-1.gif" width="11" height="12">Excel上传:</td></tr><tr><td width="69%"><div align="left"><img src="../images/space.gif" width="40" height="8"> <inputname="fujian_content" id="fileName" type="file" size="28"><input type="submit" id="butten" name="button" value="上传"onClick="btnsave_fujian(this);"> <ahref="${pageContext.request.contextPath}/file/downloadMoBan.do?xlsName=fwjfModel.xls"target="_blank">[ 积分上传模版下载 ]</a></div></td><td width="25%" height="30"><div id='KB1Parent' class='parent'></div></td><td width="31%" height="30"><div id='KB6Parent' class='parent'>&nbsp;</div></td></tr></table>
<script type="text/javascript">function btnsave_fujian(obj) {//var sf_content = frm1.fujian_content.value;var fileName = $("#fileName").val();var ext = fileName.slice(fileName.lastIndexOf(".") + 1).toLowerCase();//获取文件后缀名var flag = true;if (document.getElementById("fileName").value == null|| document.getElementById("fileName").value == "") {alert("请选择上传文件");flag = false;return false;}if ("xls" != ext) {alert("只能上传Excle文件");flag = false;return false;}if (flag) {var url = "${pageContext.request.contextPath}/file/uploadFile.do";//更改form的action  $("#form1").attr("action", url);$("#form1").submit();$("#butten").attr("disabled", "disabled");}}
</script>

后台代码:

  1. 文件下载
  2. 文件下载很简单,以流的方式下载。
@RequestMapping("downloadMoBan")public void downloadMoBan(HttpServletResponse response, String xlsName) throws Exception {try {// path是指欲下载的文件的路径。String path = FuwuFileUpload.class.getClassLoader().getResource("/").getPath();path = path.replace('/', '\\'); // 将/换成\// path=path.replace("file:", ""); //去掉file:path = path.replace("classes\\", ""); // 去掉class\path = path.substring(1); // 去掉第一个\,如 \D:\JavaWeb...path += "upload\\";path += xlsName;File file = new File(path);// 取得文件名。String filename = file.getName();// 取得文件的后缀名。String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();// 以流的形式下载文件。InputStream fis = new BufferedInputStream(new FileInputStream(path));byte[] buffer = new byte[fis.available()];fis.read(buffer);fis.close();// 清空responseresponse.reset();// 设置response的Headerresponse.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));response.addHeader("Content-Length", "" + file.length());OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType("application/octet-stream");toClient.write(buffer);toClient.flush();toClient.close();} catch (IOException ex) {ex.printStackTrace();}}
  1. 文件上传。并修改保存文件名
@RequestMapping("uploadFile")public String uploadFile(HttpServletResponse response, HttpServletRequest request,@RequestParam(value = "fujian_content") MultipartFile file) throws Exception {
String path = FuwuFileUpload.class.getClassLoader().getResource("/").getPath();path = path.replace('/', '\\'); // 将/换成\// path=path.replace("file:", ""); //去掉file:path = path.replace("classes\\", ""); // 去掉class\path = path.substring(1); // 去掉第一个\,如 \D:\JavaWeb...path += "upload";System.out.println("pathpath:" + path);System.out.println("后台输出:" + file.getOriginalFilename());// 打印出文件名// 上传的文件名String uploadName = file.getOriginalFilename();// 获取后缀名String[] strArray = uploadName.split("\\.");int suffixIndex = strArray.length - 1;String exe = strArray[suffixIndex];// 组装服务器文件名SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");String fileName = sdf.format(new Date());//服务器保存新文件名fileName = fileName + "." + exe;//文件名+后缀名DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload sfu = new ServletFileUpload(factory);sfu.setHeaderEncoding("UTF-8"); // 处理中文问题List<FileItem> fileItems = sfu.parseRequest(request); // 解码请求//以下是创建文件String filePath = path + "\\" + fileName;//文件路径+文件全名System.out.println("filePathfilePathfilePath:" + filePath);File file2 = new File(fileName);//若文件不存在,创建文件if (file2.exists()) {file2.createNewFile();}// 输入流InputStream in = file.getInputStream();// 输出流OutputStream out = new FileOutputStream(filePath, true);//将上传文件内容,写进服务器创建的新文件。try {byte[] buffer = new byte[1024];while (true) {int byteRead = in.read(buffer);if (byteRead == -1)break;out.write(buffer, 0, byteRead);}}catch (MalformedURLException ex) {// System.err.println("写入新文件错误");} finally {//关闭输入流,输出流if (in != null)in.close();if (out != null) {out.close();}}
}

java关于文件上传和下载,保存到后台并修改名字。相关推荐

  1. java web 文件上传和下载

     在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直 ...

  2. java 文件下载 jsp文件_jsp文件 Java实现文件上传与下载

    通过前台选择文件,然后将资源上传到(即新建一个文件)到发布的资源文件下面, 下载就是url 到发布的资源文件,触发即可自动下载.服务器已经封装了如何下载的底层实现.(此处用的是tomcat) JSP上 ...

  3. 【Java】文件上传及下载、限制文件大小

    1.后端部分 Controller代码 // 上传@PostMapping("upload")@ResponseBodypublic Result upload(Multipart ...

  4. java图片预览上传_java实现文件上传、下载、图片预览

    这篇文章主要介绍了java实现文件上传.下载.图片预览,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 多文件保存到本地: @ResponseBody ...

  5. H5+JAVA的文件上传,断点续传

    需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

  6. 文件上传 java web_JavaWeb 文件上传下载

    1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...

  7. java里面的文件上传与下载

    java里面的文件上传与下载 文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar commons-io.jar apache的commons-fileuplo ...

  8. java spring文件下载_SpringMVC实现文件上传和下载的工具类

    本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中. 开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成 ...

  9. Java Web项目中遇到的文件上传与下载问题

    (转发自:https://www.cnblogs.com/xdp-gacl/p/4200090.html)   在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中 ...

  10. Java如何进行文件上传与下载

    Java文件上传与下载 在项目开发中难免遇到这样的问题,对于我这种小白,那只能寻求度娘的帮助拉,各种搜索和看博客文章,当实际运行时....哎,痛苦. 今日分享一波,望你所用,烦闷去之. 文件上传 首先 ...

最新文章

  1. Nat. Commun.|概率蛋白质序列模型的生成能力
  2. lvm的备份还原及修改UUID
  3. 关于java中死锁的总结
  4. 31 CO配置-控制-产品成本控制-成本对象控制-期末结算-定义结算在产品的记帐规则
  5. NUS 联合 Sea AI Lab 发表 Multi-view Pose Transformer,完全端到端学习,超强可扩展性...
  6. rundeck入门-基础知识
  7. 你知道的Python面向对象真的是全面的嘛?看看这个你就知道了
  8. 电脑鼠标失控自己乱点_在这款沙盒游戏里,你只需要乱点鼠标就能成为建筑艺术家...
  9. android qq三方登录授权失败,qq第三方登陆授权失败110401错误码解决办法介绍
  10. 统一社会信用代码、纳税人识别号验证规则
  11. 加密流量分类任务的深度学习方法(一般框架总结)
  12. CwRsync | Windows与Windows之间同步备份配置详解
  13. 爬虫获取页面信息并存储
  14. Python之父愤然退位:再也无法忍受他们鄙视我的意见
  15. 原生js获取一段时间内每隔几分钟的时间数组
  16. axios下载文件乱码问题 无法解压 文件损坏
  17. mysql输出当前是第几周使用week和weekofyear的区别
  18. 阿里开源消息中间件MetaQ(RocketMQ)简介
  19. docker镜像逆向Dockerfile
  20. 10种基于MATLAB的方程组求解方法

热门文章

  1. thrift/swift/nifty:获取客户端ip的简单方法
  2. uniapp打包app 踩坑记录
  3. PLC-Recorder快速监控多个PLC位的技巧
  4. OpenCV情绪识别(Python实现,超简单)
  5. Uploadifive上传
  6. css3实现3d图片旋转效果
  7. 在线翻译PDF文件用什么方法
  8. C#使用ADO.NET访问数据库
  9. bootstrap栅格化框架
  10. 关于 css的一些 基本应用 可供回忆