使用jsp文件进行上传与下载

Jsp 使用 fileupload 文件上传和下载 前言Jsp文件上传的目前主要有两个常用的: 1、SmartUpload 2、Apache Commons fileupload我在期末的 Jsp大作业 使用到文件上传模块,使用了第二个 Apache 的包,这里写下它的普通用法和注意的问题、最重要的是介绍表单的文本信息和文件一块提交的写法。解决第一步、我们应该引入2个包:commons-fileupload-1.2.1.jar commons-i 阅读详情

上传

注意点:
1.前台页面中提交方式设置为post请求,enctype属属性设置为:multipart/form-data

<form action="servlet类地址" method="post" enctype="multipart/form-data">
</form>

2.需要导入jar包
3.后台代码:

// 创建对象DiskFileItemFactory工厂对象
		DiskFileItemFactory factory = new DiskFileItemFactory();
		// 创建解析request 接收项对象ServletFileUpload
		ServletFileUpload upload = new ServletFileUpload(factory);
		//处理中文乱码问题
		upload.setHeaderEncoding("utf-8");
		//使用upload解析 request获取的数据
		List<FileItem> list = upload.parseRequest(request);
		if(oneFileItem.isFormField()){
					//文本
					String name =oneFileItem.getFieldName();// 获取 name 的属性值
					if("miaoshu".equals(name)){
					//文本
					}					
				}else{
					//文件
					String only = UUID.randomUUID().toString(); //获取一个随机不可能重复的字符串
					
					String fileName =oneFileItem.getName();// 获取当前上传的文件名  
					int index = fileName.lastIndexOf("."); 
					String newFileName = only+fileName.substring(index);//将随机不可能重复的字符串与文件的后缀名拼接起来

					// 文件流的读写
					InputStream in =oneFileItem.getInputStream();
					// 地址  文件要上传复制到哪个地方去
					OutputStream out =new FileOutputStream(new File("D:/Eclipse/xiangmu/demo01/WebContent/imge",fileName));
					
					byte [] b = new byte[1024];
					int len = 0;
					while((len = in.read(b)) != -1){
						out.write(b, 0, len);
					}//这里是一个while循环不是if判断要是不循环的话就会只执行一遍
					in.close();
					out.close();
				}

下载

下载是超链接中传递参数(例如:id,name),get请求
后台代码:

乱码问题可以参考:解决乱码问题

//获取下载文件的文件名
		String fileName = request.getParameter("fileName");
		//文件名可能包含中文解决乱码问题 
		fileName = new String(fileName.getBytes("iso-8859-1"),"utf-8"); //这是get请求的处理接收中文乱码的问题
		System.out.println(fileName);
		//进行下载
		//由于这是在url地址下载的,如果下载的文件名中包含中文的话会导致编码问题 每一个浏览器的编码规则有可能不一样所以需要设置提交设置一下下载文件的文件名
		String fileName2 = fileName;
		String agent = request.getHeader("user-agent");  //获取浏览器厂商头信息
		if(agent.contains("Firefox")){  //Firefox浏览器中包含Firefox字样
			fileName2=FireFoxEncoding.base64EncodeFileName(fileName);  
		}else{
			//其他浏览器
			fileName2=URLEncoder.encode(fileName,"utf-8");
		}
		//设置两个头 一个流
		//1.设置文件名称的METE值的类型,通过SerevletContext来获取
		response.setContentType(this.getServletContext().getMimeType(fileName)); 
		//2.设置content-dispostion 
		response.setHeader("Content-Disposition", "attachment;fileName="+fileName2);
		//下载就是一个响应 开始创建响应输出流
		//先读取要下载的文件
		//String path = this.getServletContext().getRealPath("/download"); //获取要下载文件的文件夹
		System.out.println(fileName2);
		InputStream in = new FileInputStream(new File("D:/Eclipse/xiangmu/demo01/WebContent/download",fileName));  //读取这个文件
		//再创建一个写的对象
		OutputStream out = response.getOutputStream();  
		//进行读写
		byte[] b = new byte[1024];
		int len = 0;
		while((len=in.read(b))!=-1){
			out.write(b, 0, len);
			}//这里是一个while循环不是if判断要是不循环的话就会只执行一遍
		//关闭流
		out.close();
		in.close();
告别点不亮!STM32F103驱动HT1621段码屏的常见坑点与调试心得 本文详细解析了STM32F103驱动HT1621段码屏的五大常见问题及解决方案,包括硬件连接、时序控制、RAM地址映射等关键难点。通过实测数据和代码示例,帮助开发者快速排查显示异常问题,提升驱动开发效率。特别针对HT1621与STM32F103的兼容性问题提供了专业调试建议。 阅读详情

相关推荐

人工智能-CS188 Project 2: Multi-agents

一、项目介绍 项目介绍网页 项目代码下载 本项目是采用Berkeley的CS188课程内容实习二的内容,在这个项目中,我们将为经典版本的Pacman 设计自动算法,包括幽灵。在此过程中,我们将实现 minimax 和 expectimax 搜索并尝试评估函数设计 完成作业只需要完成5个题目,按照项目介绍的步骤进行完成,主要是在multiAgents.py文件中进行补充代码 二、代码详情 1、Question1:Reflex Agent 略 2、Question2:Minimax 套用ppt上的minm

xiten的博客 8285

jsp中实现文件上传下载的三种解决方案(推荐)

大致实现原理:当enctype的值是multipart/form-data时,浏览器会把每个表单项进行分割,分割成不同的部件,以boundary的值为分割标识,这个标识的字符串是随机生成的,最后一个表单项的分割标识字符串末尾会多两个”- -“,代表结束。支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox,360安全浏览器,并且刷新浏览器后仍然能够续传,重启浏览器(关闭浏览器后再打开)仍然能够继续上传,重启电脑后仍然能够上传。

Mr_Zang666的博客 2261

reCAPTCHA v3隐形验证码实战:5分钟教你用Capsolver获取0.9高分令牌

本文提供了一份reCAPTCHA v3隐形验证码的实战指南,详细解析其浏览器评分机制,并手把手教你使用Capsolver自动化获取0.9高分令牌。内容涵盖从环境侦察、关键参数(sitekey与pageAction)提取,到API调用、结果轮询及令牌使用的完整流程,旨在帮助开发者高效绕过自动化交互障碍。

weixin_29314405的博客 347

jsp web中实现文件上传下载的三种解决方案(推荐)

4. 上传文件不能使用 request.getParameter("")获取参数了,而是直接将request解析,通过判断每一项是文件还是非文件,然后进行相应的操作(文件的话就是用流来读取,非文件的话,暂时保存到一个map中。, jsonp: "callback" //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名。this.ui.msg.text("MD5计算完毕,开始连接服务器...");this.ui.msg.text("服务器存在相同文件,快速上传成功。

Mr_Zang666的博客 1864

Dify如何实现自主学习

摘要:Dify通过构建感知-决策-执行-反馈的闭环实现"自主学习",本质是打造能自动获取信息、更新知识库并调整策略的Agent工作流。核心包括:1)建立知识库作为记忆体;2)搭建感知与执行工具获取实时信息;3)通过工作流编排决策"大脑",包含LLM决策节点、行动执行节点和反馈反思节点。典型应用如根据用户反馈优化回答风格,通过存储反思日志到知识库实现持续优化。这种机制使智能体能基于新数据和经验不断自我改进。

专注于技术研发行业技术主要有AI人工智能视觉识别、物联网技术、电商平台、app原生技术、微信小程序、鸿蒙语言开发、办公企业oa、ERP等,致力于做东半球最优秀的程序员 725

从零开始:STM32C011开发板的硬件生态与快速验证

本文全面解析STM32C011开发板的硬件生态与快速验证方法,帮助开发者从零开始掌握这款基于ARM Cortex-M0+内核的微控制器。内容涵盖硬件架构解析、开发环境搭建、基础功能验证及性能优化技巧,为嵌入式开发提供实用指导。

swift5iosmith的博客 481

jsp实现文件上传下载功能

文件上传首先得引入两个jar包,建议在mvn库中下载,下载完粘贴到lib目录下 首先写上传文件的jsp界面 &lt;form action="UpLoadServet" method="post" enctype="multipart/form-data"&gt; &lt;font color="white" size="5px"&gt;文件上传功能(将你的照片,音乐

仲夏的博客 3万+

ESP32 STA AP模式下,设备连接 ESP的AP 后无法上网,无法访问域名上网(或者Failed to enable NAPT)

ESP32 STA AP模式下,设备连接 ESP的AP 后无法上网,无法访问域名上网(或者Failed to enable NAPT)1.可能是ESP STA模式未成功连接到路由器,确保 STA 成功连接到外部网络。2.检查 STA 和 AP 的网络配置是否正确,避免子网冲突。3.ESP32的NAPT功能未正确启用,确保 menuconfig 中已启用 IP_NAPT。4.DNS服务器未正确配置。

qq_34885669的博客 1539

使用jsp/servlet简单实现文件上传与下载

使用JSP/Servlet简单实现文件上传与下载   通过学习黑马jsp教学视频,我学会了使用jsp与servlet简单地实现web的文件的上传与下载,首先感谢黑马。好了,下面来简单了解如何通过使用jsp与servlet实现文件上传与下载。       在写代码之前,我们需要导入两个额外的jar包,一个是common-io-2.2.jar,另一个是commons-fileupload-1.3.1....

Wetsion的博客 9241

SpringBoot从入门到精通(全)

前言 ==本博文结合软件idea进行主要讲解== **springboot的特性主要有** - 简化 Spring 应用程序的创建和开发过程 - 抛弃了繁琐的 xml 配置过程,采用大量的默认配置简化以及注解反射 - 直接使用 java main 方法启动内嵌的 Tomcat 服务器运行 Spring Boot 程序,不需要部署 war 包文件 **四大核心**分别为自动配置、起步依赖、Actuator和命令行界面

码农研究僧的博客 7万+

高性能算力中心 — RDMA — Overview

目录 文章目录目录RDMA基于以太网的 RoCE/RDMA 计算优化NVMeNVMe Over Fabrics基于以太网的 NVMe 存储优化 RDMA RDMA(Remote DMA,远程直接内存访问)是一种新的内存访问技术,RDMA 让计算机可以直接存取其他计算机的内存,而不需要经过 CPU 耗时的处理。RDMA 将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响。RDMA 技术的原理及其与 TCP/IP 架构的对比如下图所示。 InfiniBand(IB):从一开始就支持 R

烟云的计算 2365

springboot学习(九): 文件的上传下载和jsp页面的使用

说明 由于工作的需要,在学习springboot时,学习了jsp的使用,最近又涉及到springboot的文件上传方式。找资料学习后,在这里记录总结下springboot的单个和多个文件的上传和下载及jsp的使用。 正文 一、jsp的使用 通过Spring Initializr创建新的springboot项目,添加依赖: &lt;dependency&gt; &lt;groupId&gt;org...

wds的博客 1355

基于STM32L4XX、HAL库的AD7124模数转换器ADC驱动程序设计

/ 检查ID是否正确 (AD7124-4/AD7124-8有不同的ID)// 转换为电压值 (假设使用内部2.5V基准)// 构造读命令: 1(R/W) + 1(0) + 6(寄存器地址)// 构造写命令: 0(R/W) + 1(0) + 6(寄存器地址).config = 0, // 使用配置0。内置可编程增益放大器(PGA):1-128倍。// 读取ADC数据。// 读取当前ADC控制寄存器。// 检查数据是否就绪。// 写回ADC控制寄存器。// 初始化AD7124。

zhusl6688的博客 520

使用JSP+Servlet实现文件上传下载

文件的上传下载是在web应用中常用的功能之一,这篇博客就简单的使用纯Jsp+Sevlet完成文件上传下载的功能。平时在做一些数据提交的时候通常使用表单,在form表单有一个属性enctype,该属性规定在发送到服务器之前应该如何对表单数据进行编码。属性通常取以下值: 值 描述 application/x-www-form-urlencoded 在发送前编码所有字符(默认) mult

zhuxinquan的博客 1191

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JSP+Servlet中使用cos.jar实现文件上传下载

第一、前言 本文通过JSP+Servlet的架构,用cos.jar实现文件的上传与下载。不涉及数据库交互。 第二、引入相关jar包 第三、代码示例 1、新建com.servlet.UploadServlet.java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; impor

龙吟山庄 888

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

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

使用JSP+Servlet实现文件的上传下载上传

package com.dw.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import j

qq_42946963的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

第十六天前端jsp文件上传和下载及servlet的使用

二十文件上传及下载 加入SmartUpload jar包,专门用于实现文件上传及下载的组件 1.文件上传 public final void initialize(PageContextpageContext) 执行上传和下载的初始化工作,必须实现 public void upload() 实现文件数据的 传 , 在initialize 方法后执行 public int save(String pathName) 将全部上传文件保存到指定的目录下,并返回保存的文件个数 public void setAllo

qq_40298829的博客 313

Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)

折腾了我两天的使用JSPSmartUpload控件进行文件的上传和下载问题终于被解决了,现在将要注意的几个点整理出来,方便自己以后查询的同时分享给大家(内容有参考网上其他博客),希望以后文件的上传和下载不再困扰大家。 一、为了方便将上传和下载的代码放到一个JSP页面中,方便测试和学习,代码如下: contentType="text/html;charset=GBK" import="jav

liuhaolzjtu的专栏 - 学而不思则罔,思而不学则殆。 2628

JSP中如何使用插件实现大文件断点上传与下载?

要求:开源,免费,技术支持技术:分片,分块,断点续传,加密传输,加密存储需求:大文件上传,批量上传,断点续传,文件夹上传,大文件下载,批量下载,断点下载,文件夹下载文件夹:上传下载需要支持层级结构,采用非压缩方式文件大小:100G前端:vue2,vue3,vue-cli,jquery,html,webuploader后端:java,JSP,springboot,struts服务器:linux,信创国产化数据库:mysql,oracle,达梦,国产化数据库。

weixin_52041354的博客 907

使用jsp/servlet实现文件上传与下载

使用jsp/servlet实现文件上传与下载

s_shuai88的博客 376

jsp中使用SmartUpload实现文件上传下载

一、安装篇   jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点: 1、使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载,方便。 2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文...

Hello Java 170

使用smartupload组件实现jsp+jdbc上传下载文件

SmartUpload组件只有5个分别是:File、Files、Request、SmartUpload、SmartUploadException类,其中,File代表用户上传的文件,Files代表用户上传的多个文件,Request相当于HttpServletRequest的功能,用于获取表单数据,SmartUpload是最核心的类,负责文件上传下载,SmartUploadException是自定义

不积跬步无以至千里 604

【转载】使用jsp实现文件上传到服务器或者从服务器上下载文件到本地计算机完整说明版

很多同学在使用jsp实现文件上传到服务器或者从服务器上下载文件到本地计算机这方面不是很了解,今天在这里我会帮助大家慢慢的实现这一功能。 准备工作: 1.       到网上下载两个包 第一个叫做commons-fileupload-1.2.1.jar 第二个叫做commons-io-1.3.2.jar 2.  建一个项目用来实现文件上传和下载        我创建的Web项目名为fileUploa

hcyFly 9799
上一篇: 解决jsp页面前台时间列显示多一个.0
下一篇: jsp中radio的信息的数据回显问题
lemon20120331
博客等级 码龄9年 277粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lemon20120331

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值