Java Servlet上传文件

在网上看好多程序员在找Java文件上传的demo,其实用[b]Servlet3.0[/b]([b]JDK1.6[/b])自身带的API就可以了,Servlet3.0新增了Part接口,HttpServletRequest的getPart()方法取得Part实现对象,以下是实现单文件上传的代码:
1、前端页面代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>调用HttpServletRequest的getPart()方法!</h1><br>
<form action="OneFileUpLoadServlet" method="post" enctype="multipart/form-data">
选择一个要上传的文件:<br>
<input type="file" name="one-photo"/><br>
<input type="submit" name="upload" value="Upload">
</form>
</body>
</html>

2、后台Servlet代码:
package com.victory.servlet;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
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;

@MultipartConfig
@WebServlet("/OneFileUpLoadServlet")
public class OneFileUpLoadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

Part part = request.getPart("one-photo");
String fileName = getFileName(part);
writeTo(fileName, part);

}

private String getFileName(Part part) throws IOException{
String header = part.getHeader("Content-Disposition");
String filePath = header.substring(header.indexOf("filename=\"") + 10, header.lastIndexOf("\""));
String fileName = filePath.substring(filePath.lastIndexOf("\\")+1);

return fileName;
}

//保存到服务器上的C:根目录下
private void writeTo(String fileName, Part part) throws IOException {
InputStream is = part.getInputStream();
OutputStream os = new FileOutputStream("C:/"+fileName);
byte[] buffer = new byte[1024*2];
int length = -1;
while((length = is.read(buffer)) != -1) {
os.write(buffer, 0, length);
}
is.close();
os.close();
}

}

以下是实现多文件上传:
1、前端页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>调用HttpServletRequest的getParts()方法!</h1><br>
<form action="MoreFileUpLoadServlet" method="post" enctype="multipart/form-data">
选择要上传的文件:<br>
<input type="file" name="filename1" value="" /><br>
<input type="file" name="filename2" value="" /><br>
<input type="file" name="filename3" value="" /><br>
<input type="file" name="filename4" value="" /><br>
<input type="file" name="filename5" value="" /><br>
<input type="file" name="filename6" value="" /><br>
<input type="file" name="filename7" value="" /><br>
<input type="file" name="filename8" value="" /><br>
<input type="submit" name="upload" value="Upload">
</form>
</body>
</html>

2、后台Servlet代码:
package com.victory.servlet;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
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;

@MultipartConfig
@WebServlet("/MoreFileUpLoadServlet")
public class MoreFileUpLoadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

for(Part part:request.getParts()) {
if(part.getName().startsWith("file")) {
String fileName = getFileName(part);
writeTo(fileName, part);
}
}
}

private String getFileName(Part part) throws IOException{
String header = part.getHeader("Content-Disposition");
String filePath = header.substring(header.indexOf("filename=\"") + 10, header.lastIndexOf("\""));
String fileName = filePath.substring(filePath.lastIndexOf("\\")+1);

return fileName;
}

//保存到服务器上的C:根目录下
private void writeTo(String fileName, Part part) throws IOException {
InputStream is = part.getInputStream();
OutputStream os = new FileOutputStream("C:/"+fileName);
byte[] buffer = new byte[1024*2];
int length = -1;
while((length = is.read(buffer)) != -1) {
os.write(buffer, 0, length);
}
is.close();
os.close();
}

}

附件是demo的详细代码,希望对大家有用,谢谢!
Java Servlet 使用getPart接收ajax上传的文件 Java Servlet 接收ajax上传的文件参考单文件上传htmljsJava多文件上传htmljsJava 参考 Java Servlet3.0使用getPart/getParts实现单文件和多文件上传 Part类的官方文档 单文件上传 选择文件 点击上传 参数名为 file,用于后端获取 html <div> <input type="file" id="file" ... 阅读详情

相关推荐

基于51单片机的多功能智能路灯控制系统(仿真+代码+原理图)

智能路灯控制系统主要由51单片机最小系统+1602显示模块+DS1302时钟模块+光强检测模块+按键输入模块+声光报警模块+LED照明模块+状态检测电路+人体车辆红外检测模块组成。能实现以下功能: 1.能够按键设定系统时间、工作时间、光照阈值 2.工作时间内路灯点亮,凌晨12点后路灯关闭,有人或车通过是,路灯点亮10s 3.非工作时间光照强度低于阈值,路灯点亮 4.能够检测系统工作状态,路灯应亮未亮,声光报警 5.具备手动控制,能够切换自动/手动控制功能

u012759563的博客 8177

Web后端servlet—使用servlet的Part接口实现单文件多文件上传、以及日期格式转换为sql日期格式的实现

本文档介绍了文件上传的处理方法,包括当前端form表单的编码类型为enctype="multipart/form-data"时如何处理?以及老办法获取上传文件的名字,新办法自己一个函数获取上传文件的名字。最后讲解了上传一个文件和上传多个文件的区别和代码。 一、文件上传注意事项 当前端的form表单包含有文件上传时,有以下知识点: 1.form表单中的数据编码类型要写enctype="multipart/form-data" 才能上传文件,该编码类型将会以二进制的形式上传数据。 2.问题来了,..

每天八杯水的博客 6558

「大模型学习」(14)Long Context之线性插值、NTK-aware、Yarn、LongRoPE

大语言模型长上下文扩展中的位置插值技术 摘要:为解决大语言模型(LLMs)在推理阶段扩展上下文窗口时的位置编码限制,研究人员开发了一系列位置插值技术。这些方法主要针对旋转位置编码(RoPE)机制,通过不同策略调整位置索引以适应超出训练长度的上下文。典型方法包括:基础位置插值(PI)均匀缩放位置索引;NTK-aware插值对不同频率维度差异化处理;NTK-by-parts插值根据波长分段调整;Yarn插值结合温度调节;以及LongRoPE采用非均匀插值策略。这些技术在不修改模型结构的前提下,通过调整位置编码的

qq_43044037的博客 1644

java servlet 接收文件上传_Java Servlet实现文件上传

文件上传可以说是Web应用中很常用的一块,前几天打算研究一下HTML5提供的FileReader API,并且用Tomcat作为后端来实验大文件的上传(只是学校的课程作业必须用Java写,都不允许使用最好的编程语言php>.对面宿舍的一位同学说我很久没更了不太好,于是我就写一篇,谢谢他的提醒。首先,我们都知道最常见的HTML的文件上传控件是喜闻乐见的,但一定要搭配form的属性enctype...

weixin_40005542的博客 877

kettle从入门到精通 第九十二课 ETL之kettle 使用Kettle的Carte对外发布读写接口

场景:使用kettle实现将查询结果返回给客户端,也就是说kettle暴露查询接口供外围系统调用。前提必须是使用carte服务才可以提供接口供外部系统调用。具体实操方法如下:1、设计转换根据具体需求设计转换,主要用到的步骤有获取变量(从请求参数中获取变量)、json输入(解析入参),json 输出将结果转换为json格式输出到客户端。如下图所示:2、接收参数使用获取变量步骤来接收接口请求参数,变量通过${}方法进行获取,如下图${PARAM}则是获取PARAM参数,将参数赋值为req字段。

zhangjin1222的博客 954

手把手教你用LaTeX完成Elsevier期刊投稿:附完整文件上传清单与注意事项

本文提供了一份详尽的Elsevier期刊LaTeX投稿实战指南。文章系统拆解了从稿件准备、文件上传到最终提交的全流程,重点解析了Manuscript、Figure(s)等关键文件的上传逻辑与注意事项,并附有PDF生成前后的详细检查清单,旨在帮助研究者高效、规范地完成投稿,规避常见错误。

weixin_29300931的博客 487

Java Servlet Technology - 上传文件

文章目录Java Servlet TechnologyUploading Files with Java Servlet TechnologyThe @MultipartConfig AnnotationThe getParts and getPart Methods实践环境新建项目上传单个文件基于表单上传单个文件测试基于 AJAX 上传单个文件测试上传多个文件基于表单上传多个文件测试基于 AJAX 上传多个文件测试参考 Java Servlet Technology Uploading Files wit

qq_29761395的博客 851

在 SAP 中启用应收/应付“代扣税(Withholding Tax)”功能,本质上是激活并配置“扩展代扣税(Extended Withholding Tax)”模型

摘要:SAP中启用应收/应付代扣税功能需完成3个层级12个核心步骤:1)全局激活公司代码代扣税功能;2)配置代扣税规则、税率和科目,包括定义税种类型、代码、总账科目等;3)在供应商/客户主数据中关联代扣税设置。完成后系统可在发票或付款环节自动计算并过账代扣税,支持多税种并行计算和税率年度调整,最终生成税务报表。常见问题排查需检查公司代码激活状态和主数据配置。(149字)

金牌架构师 836

Java Servlet 文件上传

平常项目中需要用到文件的上传,下面将详细介绍在Servlet中使用commons-fileupload-1.3.jar进行文件上传的经过。首先项目中要导入JAR包commons-fileupload-1.3.jar、commons-io-2.3.jar 1、编写Servlet类 package com.fileupload; import java.io.File; import ja

brushli的专栏 3607

LLM评测框架Ragas:测试RAG的性能出现TimeoutError()的解决办法(Ragas+langchain+ollama)

无奈之下,自己找到了一个解决办法,在ragas支持的llm类库中加了一个如下的类,支持ollama、langchian_ollama使用ragas测试报错的问题。可以将如上的库放到你的ragas的系统库的llms目录下,然后修改__init__.py如下。最近用ragas测试rag的性能,发现老出现TimeoutError()的错误。这是一个临时的解决办法,具体等待官方给出最终的解决方案。后来发现官方也没有尽快支持的计划。然后就可以用如下代码进行一些验证。

Criss@陈磊 665

YOLO26全网首发:CVPR2026 FAA| 解决YOLO Neck跨尺度方向冲突--- FAAFusion频域对齐融合模块 | 暴力涨点篇

本文改进:FAAFusion引入YOLO neck ,代替nn.Upsample和Concat

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 644

java servlet 文件上传_Servlet实现多文件上传功能

一、Servlet实现文件上传,需要添加第三方提供的jar包下载地址:1) commons-fileupload-1.2.2-bin.zip:点击打开链接2) commons-io-2.3-bin.zip:点击打开链接接着把这两个jar包放到 lib文件夹下:二、文件上传的表单提交方式必须是POST方式编码类型:enctype="multipart/form-data",默认是 appl...

weixin_39771969的博客 332

少儿学编程系列--使用递归画出龙形曲线DragonCurve

龙形曲线(Dragon Curve) 龙形曲线(Dragon Curve)又叫分形龙,是一种自相似碎形曲线的统称,因形似龙的蜿蜒盘曲而得名 使用黄金比例画龙形曲线 根据黄金比例画一条龙曲线。每次递归,第一步向左转32.89度,移动0.74倍原距离;第二个递归步骤向右转46.99度,移动原来距离的0.55倍。请查看这个网页(https://larryriddle.agnesscott.org/ifs/heighway/goldenDragon.htm)了解关于龙形黄线数学的细节 龙形曲线效果 .

penriver的博客 2296

java 文件上传 servlet_java基于servlet实现文件上传功能

本文实例为大家分享了java基于servlet实现文件上传的具体代码,供大家参考,具体内容如下研究了一天终于将java上传文件看懂了,当然懂的仅仅是皮毛,不妨记下来防止以后忘了。我们在网上看关于文件的上传有很多的介绍,当然有的可以使用有的则不合适:我们首先来看前台的界面。上传文件上传文件SubmitReset这个地方是为了好看使用了Bootstrap进行布局,如下:在做好前台的页面之后,我们开看后...

weixin_42519514的博客 537

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

java servlet 接收文件上传_java servlet如何获取提交的文件。

展开全部importjava.io.File;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjavax.servlet.ServletInputStream;importjavax.servlet.http.HttpServletRequest;importjavax.ser...

weixin_39684967的博客 653

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java servlet 文件上传

后台代码: package com.lk.test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter;

KANGBROTHER的专栏 3871

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java 文件上传 servlet_java文件上传-原始的Servlet方式

前言:干了这几个项目,也做过几次文件上传下载,要么是copy项目以前的代码,要么是百度的,虽然做出来了,但学习一下原理弄透彻还是很有必要的。刚出去转了一圈看周围有没有租房的,在北京出去找房子是心里感觉最不爽的时候,没有归属感,房租还不便宜,RT,不能好高骛远,还是脚踏实地一点一点学技术吧,终将有一日,工资会涨的。java文件上传传统的文件上传,不用jquery插件的话,就是用form表单提交,项目...

weixin_30970411的博客 200

java 文件上传 servlet_Java中的文件上传(原始Servlet实现)

从原始的Servlet来实现文件的上传,代码如下:采用的是Multipart/form-data的方式上传文件。针对Multipart/form-data方式的上传解释,参考如下文件:下面为具体的实现方式:1、通过getInputStream()取得上传文件。注意:这种方式相当的原始,通过分析body中的字符,然后再进行硬编码切割出文件字节,再进行保存。JSP:文件1:文件2:文件3:Text:S...

weixin_28673669的博客 378

java 文件上传 servlet_Servlet实现文件上传,可多文件上传

一、Servlet实现文件上传,需要添加第三方提供的jar包接着把这两个jar包放到 lib文件夹下:二:文件上传的表单提交方式必须是POST方式,编码类型:enctype="multipart/form-data",默认是application/x-www-form-urlencoded比如:三、举例:1.fileupload.jspStringpath=request.getConte...

weixin_28691003的博客 313

JAVA servlet文件上传和servlet文件下载

JAVA servlet 文件上传与下载一、文件上传1.单文件上传![](https://img-blog.csdnimg.cn/20201130132418510.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1ODQ0NDQz,size_16,color_FFFFFF,t_70#pic_center) 一、文件上传 1.单文件上传 U

qq_45844443的博客 577

Java-servlet实现单文件上传

Java-servlet实现单文件上传 引入jar,javax.servlet-api下载地址:https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api 一、上传页面准备 ​ 实现简单的上传页面,其中在上文件的form表单中表单的提交方式必须为post,enctype必须为multipart/form-data,否者无法实现。 <!DOCTYPE html> <html lang="en"> <head

ww741258963123的博客 348

java模拟servlet_Java后台模拟向Servlet发送POST文件上传请求

在某些情况下,需要用Java applicatioin来模拟form,向服务器(本文以servlet为例)发送http post请求,包括提交表单域中的数据以及上传文件。如果仅仅是传递form中的数据,而不包含上传文件,那是很简单的,比如Java application可以这么写:package com.pat.postrequestemulator;importjava.io.BufferedR...

weixin_39994296的博客 371

Java 原生Servlet上传文件,及浏览器下载文件

文章目录文件上传浏览器下载文件 文件上传 获取tomcat运行路径 Servlet获取 //获取web项目运行时webapps目录路径 String basepath = request.getServletContext().getRealPath("/"); String webapps = new File(basepath).getParentFile().getPath(); Cl...

森小子的博客 346

java基于servlet的文件上传

研究了一天终于将java上传文件看懂了,当然懂的仅仅是皮毛,不妨记下来防止以后忘了。 我们在网上看关于文件的上传有很多的介绍,当然有的可以使用有的则不合适:我们首先来看前台的界面 上传文件 上传文件 Submit Reset

datouniao1的博客 3503

java servlet上传文件并把文件内容显示在网页中

servlet3.0(JDK1.6)自带的API即可实现本地文件的上传,Servlet3.0新增了Part接口,HttpServletRequest的getPart()方法取得Part实现对象。下面我实现了文件的上传以及将上传的文件显示在网页上(主要目的是实现本地文件在网页上的显示,我采取了先上传文件,在读取上传的文件,将读取的内容显示在网页上)。 Java代码实现: 1...

aoyuan4706的博客 479

java jsp 文件上传,简单操作实现Java jsp servlet文件上传过程解析

实现文件上传的方式2、点击用户指南3、对着用户指南一步步复制粘贴,并把代码撸成自己想要的样子补充:记得要将commons-io-2.4.jar和commons-fileupload-1.2.2.jar这两个包放到编译器里面现成的代码JSP 前端页面Created by IntelliJ IDEA.User: AdministratorDate: 2019/10/8Time: 16:14To cha...

weixin_40003767的博客 219
下一篇: Java Servlet实现在浏览器中打开pdf文件
doujun1998
博客等级 码龄19年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值