准备

我使用环境是windows10,IDEA。

需要导入两个jar包,commons-io-2.6.jar和commons-fileupload-1.3.3.jar(点击即可下载),下载后解压,找到解压文件夹下的对应的两个jar包,然后复制到自己项目下的  WEB-INF/lib/目录下(也可以放在其他地方),最后导入两个包到项目:

代码

前台jsp代码,注意form表单 action属性值为servlet的url,必须有 enctype="multipart/form-data" ,否则文件传输失败

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>资料</title>
</head>
<body><div class="bigContainer"><div><form action="/ServletUpload" method="post" enctype="multipart/form-data"><input type="file" name="file"><button type="submit">OK</button></form></div></div></body></html>

后台Servlet代码

package Servlet;import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;@WebServlet(name = "ServletUpload",urlPatterns = {"/ServletUpload"})
public class ServletUpload extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {uploadFiles(request,response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {return;}private void uploadFiles(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");//String type=request.getParameter("type");try {// 配置上传参数DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);// 解析请求的内容提取文件数据@SuppressWarnings("unchecked")List<FileItem> formItems = upload.parseRequest(request);// 迭代表单数据for (FileItem item : formItems) {// 处理不在表单中的字段if (!item.isFormField()) {String fileName = item.getName(); //获取上传的文件名String fileType=fileName.substring(fileName.lastIndexOf(".")+1);//定义上传文件的存放路径String path = request.getServletContext().getRealPath("/upload");//定义上传文件的完整路径fileName= new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()).toString();fileName+="."+fileType;  //将文件名字改为时间,避免重名文件String filePath = String.format("%s/%s",path,fileName);File storeFile = new File(filePath);// 在控制台输出文件的上传路径System.out.println(path);System.out.println(filePath);// 保存文件到硬盘item.write(storeFile);}}} catch (FileUploadException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}//下面可以跳转到上传成功后的页面,这里演示就省略了
//        request.getRequestDispatcher("/success.jsp").forward(request, response);}}

jsp上传文件到服务器相关推荐

  1. jsp向服务器上传文件,jsp ftp 上传文件到服务器

    jsp ftp 上传文件到服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分 ...

  2. Android上传文件至服务器(转)

    本实例实现每隔5秒上传一次,通过服务器端获取手机上传过来的文件信息并做相应处理:采用Android+Struts2技术. 一.Android端实现文件上传 1).新建一个Android项目命名为and ...

  3. C 上传文件到服务器(含接收端源码)

    2019独角兽企业重金招聘Python工程师标准>>> 本文demo下载地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail ...

  4. android 上传文件到服务器

    1.编写layout.xml <LinearLayout android:layout_width="match_parent"android:layout_height=& ...

  5. 利用apache-commons-fileupload写jsp上传文件

    利用apache-commons-fileupload写jsp上传文件 需要下载fileupload和beanutils两个包,代码如下. <%@ page language="jav ...

  6. c winform 上传文件到mysql_WinForm上传文件至服务器

    /// /// WebClient上传文件至服务器 /// /// 文件名,全路径格式 /// 服务器文件夹路径 /// public bool Upload(string localFilePath ...

  7. 上传文件到服务器并显示,J2EE如何实现Servlet上传文件到服务器并相应显示功能...

    J2EE如何实现Servlet上传文件到服务器并相应显示功能 发布时间:2021-07-10 11:44:54 来源:亿速云 阅读:82 作者:小新 这篇文章将为大家详细讲解有关J2EE如何实现Ser ...

  8. linux上传文件到服务器

    1.连接服务器 : ssh 用户名@ip地址 例如: unbutu@unbutu-System-Product-Name:~$ ssh root@123.57.235.11 root@123.57.2 ...

  9. jsch 移动服务器上文件,jsch上传文件到服务器

    需求就是上传文件到服务器,服务器的存储地址由程序决定然后可以自动创建. 使用第三方:jsch JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文 ...

最新文章

  1. 在idea项目中的android包不能识别_项目调试编译和部署运行
  2. AliCloudDB for redis应用场景之存储最新N条聊天记录
  3. 英文文献中的一些单词
  4. decimal 和 numeric (Transact-SQL)
  5. AIX学习笔记-第一天简介
  6. textfield获取其中内容_41页内容介绍电气安装工程,详细介绍施工图纸,值得收藏...
  7. 微服务怎么部署到服务器的_微服务的部署与发布:持续交付与持续部署微服务...
  8. easyui-treegrid的案例
  9. android 开发自建wifi热点的默认ip
  10. php控制表格颜色,php – 表格列的背景颜色
  11. screenX、clientX、pageX, offsetX的区别
  12. 内存不能为read或written的解决方案
  13. 一个Android开发者自学Python的心路历程
  14. 和平精英服务器响应超时什么意思,和平精英服务器无响应,和平精英服务器超时...
  15. excel组合汇总_Excel汇总20140414
  16. 【无标题】STM32F767串口空闲中断+DMA实现不定帧长度的接收
  17. Android平台上基于OpenGl渲染yuv视频
  18. soundex mysql,如何使用Doctrine和Symfony 3实现Soundex搜索(在MySql中)
  19. Unity 通过TextMeshPro创建属于自己的字体库
  20. 有没有老照片修复软件可以高清修复照片?

热门文章

  1. InternalError: Dst tensor is not initialized. 的产生原因和解决办法
  2. AutoDL云服务器使用(2)-虚拟环境搭建
  3. java中short类型变量
  4. Vanish/squid
  5. 极客时间和极客学院_极客拔掉
  6. 【线性代数及其应用】05 - 正交性和最小二乘
  7. 如何在Xcode里面运行C语言程序---简单展示
  8. DIV和Table的水平、垂直居中
  9. AtCoder题解——Beginner Contest 167——C - Skill Up
  10. PrintDocument打印、预览、打印机设置和打印属性的方法(较完整)