JSP文件上传

news2025/8/12 0:14:01

JSP 提供了上传和下载的功能,用户釆用此功能,可以轻松实现文件的传输。下面介绍文件上传与下载的操作。

用户通过一个 JSP 页面上传文件给服务器时,该 JSP 页面必须含有 File 类型的表单, 并且表单必须将 enctype 的属性值设置为 multipart/form-data。File 类型表单如下:

  1. <form action="接受上传文件的页面" method="post" enctype="multipart/form-data">
  2. <input type="File" name="picture">
  3. </form>

JSP 引擎可以让内置对象 request 调用方法 getInputStream() 获得一个输入流,通过这输入流读入用户上传的全部信息,包括文件的内容以及表单域的信息。

【例1】用户通过 9-9.jsp 页面上传文本文件 a.txt。request 获得一个输入流读取用户上传的全部信息,包括表单的头信息以及上传文件的内容;如何去掉表单的信息以及获取文件的内容。

在 accept.jsp 页面,内置对象 request 调用方法 getInputStream() 获得一个输入流 in,用 FileOutputStream 类再创建一个输出流 o。输入流 in 读取用户上传的信息,输出流 o 将读取的信息写入文件 B.txt。用户上传的全部信息,包括文件 a.txt 的内容以及表单域的信息存放于服务器的 C:/1000 目录下的 B.txt 文件中。文件 B.txt 的前 4 行(包括一个空行)以及倒数 5 行(包括一个空行)是表单域的内容,中间部分是上传文件 a.txt 的内容。

9-9.jsp 的代码如下:

  1. <%@page contentType="text/html;charset=utf-8"%>
  2. <html>
  3. <body>
  4. <P>选择要上传的文件:<br>
  5. <form action="accept.jsp" method="post" engtype="multipart/form-data">
  6. <input type=File name="boy" size="38">
  7. <br>
  8. <input type="submit" name="g" value="提交">
  9. </form>
  10. </body>
  11. </html>

accept.jsp 的代码如下:

  1. <%@page contentType="text/html;charset=utf-8" %>
  2. <%@page import="java.io.*" %>
  3. <html>
  4. <body>
  5. <%
  6. try
  7. {
  8. InputStream in=request.getInputStream();
  9. File dir=new File("D:/l000");
  10. dir.mkdir();
  11. File f=new File(dir,"B.txt");
  12. FileOutputStream o=new FileOutputStream(f);
  13. byte b[]=new byte[1000];
  14. int n;
  15. while((n=in.read(b))!=-1)
  16. o.write(b,0,n);
  17. in.close();
  18. out.print ("文件已上传");
  19. }
  20. catch(IOException e)
  21. {
  22. out.print("上传失败"+e);
  23. }
  24. %>
  25. </body>
  26. </html>

B.txt、9-9.jsp 和 accept.jsp 的运行效果如图 1 所示。


a) B.txt 的内容

 


b) 9-9.jsp 的运行结果


c) accept.jsp 的运行结果

图1 运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Node.js 是怎么找到模块的?

大家好&#xff0c;我是前端西瓜哥&#xff0c;今天我们来看看 Node.js 模块查找的原理。 模块种类 模块有三种来源。 核心模块&#xff1a;Node.js 内置的包。比如 http、fs、path&#xff1b; 自定义模块&#xff1a;NPM 包。比如 axios、express&#xff0c;位于 node_mo…

virtualBox虚拟机之间网络互通设置

环境 主机&#xff1a;Win10 虚拟机&#xff1a;Ubuntu 20.04 虚拟机&#xff1a;VirtualBox 6.1 模式虚拟机→主机主机→虚拟机虚拟机↔虚拟机虚拟机→Net/LANNet/LAN→虚拟机NAT√端口转发√端口转发NATservice√端口转发√√端口转发Host-Only√√√Internal√Bridged√√…

【快速上手系列】用于登录的验证码制作(ValidateCode)和Javaweb自带的老式验证码快速上手

【快速上手系列】用于登录的验证码制作&#xff08;ValidateCode&#xff09;和Javaweb自带的老式验证码快速上手 验证码 简介 验证码&#xff08;CAPTCHA&#xff09;是“Completely Automated Public Turing test to tell Computers and Humans Apart”&#xff08;全自动…

易基因|疾病研究:DNA甲基化和转录组学特征在高浆卵巢癌复发和耐药过程中高度保守

易基因&#xff5c;疾病研究&#xff1a;DNA甲基化和转录组学特征在高浆卵巢癌复发和耐药过程中高度保守 大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 2022年07月27日&#xff0c;《J Exp Clin Cancer Res》杂志发表了题为“DNA me…

Linux|centos7下部署安装alertmanager并实现邮箱和微信告警(三)

前言&#xff1a; 前文Linux|centos7下部署安装alertmanager并实现邮箱和微信告警&#xff08;二&#xff09;_晚风_END的博客-CSDN博客 实现了告警系统模块的部署和测试&#xff0c;主要的告警范围是服务器节点的操作系统内存&#xff0c;磁盘空间的使用率这些方面&#xff0…

甘露糖-聚乙二醇-N-羟基琥珀酰亚胺mannose-PEG-NHS

甘露糖-聚乙二醇-N-羟基琥珀酰亚胺mannose-PEG-NHS 琥珀酰亚胺又称为丁酰亚胺或丁二酰亚胺&#xff0c;是一种无色针状结晶或具有淡褐色光泽的薄片固体&#xff0c;味甜。易溶于水、醇或氢氧化钠溶液&#xff0c;不溶于醚、氯仿等&#xff0c;可以提供PEG接枝修饰甘露糖&#…

精彩回顾!2022VisionChina深圳展圆满落幕

11月16日&#xff0c;维科杯•OFweek 2022中国工业自动化及数字化行业年度评选颁奖典礼在深圳大中华喜来登酒店举行&#xff0c;经过OFweek网络投票、专家组评审及组委会综合评审三轮激烈紧张的评选&#xff0c;昂视凭借“PiqsVT智能视觉系统”在近300个参评项目中脱颖而出&…

Linux三个踩坑过程记录

今早花了一早上的时间解决了三个Linux的问题&#xff0c;分别是读写权限、克隆虚拟机开启问题和Xshell连接VM虚拟机问题。平时用虚拟机比较少&#xff0c;现在刚一开始用&#xff0c;就给我来了三个问题让我解决&#xff0c;真是含泪解决问题&#xff0c;但现在解决了&#xff…

预定2.0 Crack ZoomCharts JavaScript 最值得探索

世界上最可探索的 JavaScript 图表 将内容深入分析和支持多点触控的大数据可视化轻松集成到您的 Web 项目中--ZoomCharts JavaScript 快速、简单且令人印象深刻的 JavaScript 图表 以极快的速度将 javascript 图表与令人惊叹的向下钻取功能集成&#xff0c;一定会给您的团队、…

Word控件Spire.Doc 【文本】教程(22) ;在 Word 中应用强调标记(C#/VB.NET)

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

Live800:在线客服系统如何帮助企业创造持续的服务价值?

德鲁克管理箴言&#xff1a;企业的唯一目的就是“创造顾客”。 如何创造顾客&#xff1f;只能依靠产品和服务。产品和服务是连接企业与客户的天然纽带和必然桥梁。 企业依靠持续不断生产满足客户需求、符合客户价值主张的优质产品和服务来创造客户、留住客户并建立客户忠诚度…

视频怎么添加水印?快来收好这些方法

如今短视频行业发展得如火如荼&#xff0c;很多小伙伴都投入了短视频制作中。我最初发布视频只是因为热爱记录日常&#xff0c;顺便还能增进一下自己的视频剪辑水平。刚开始没想那么多&#xff0c;视频制作好就直接传到平台上去了&#xff0c;后来才发现自己的视频被别人搬运&a…

高通量筛选化合物库抑制缺氧诱导因子抑制剂

研究证明了土著细菌具有铁依赖性机制&#xff0c;可以抑制宿主铁的运输和储存。通过微生物代谢物的高通量筛选&#xff0c;研究人员发现&#xff0c;肠道菌群产生的代谢物能抑制肠道铁吸收主要转录因子低氧诱导因子 2α (HIF-2α)&#xff0c;并增加铁存储蛋白铁蛋白 (Ferritin…

SpringBoot SpringBoot 开发实用篇 4 数据层解决方案 4.3 H2数据库

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇4 数据层解决方案4.3 H2数据库4.3.1 问题引入4.3.2 内置数据库4.3.3 …

微信小程序使用npm教程

首先打开工具-详情-勾选使用npm模块 使用npm的步骤&#xff1a; 1. 安装 npm 包 在小程序 package.json 所在的目录中执行命令安装 npm 包&#xff1a; npm install此处要求参与构建 npm 的 package.json 需要在 project.config.json 定义的 miniprogramRoot 之内。 tips&am…

【大数据存储技术】思考题及参考答案

文章目录第1章 绪论1. NoSQL和关系型数据库在设计目标上有何主要区别&#xff1f;2. 简要总结一下NoSQL数据库的技术特点。第2章 NoSQL数据库的基本原理1. 描述分布式数据管理的特点。2. 什么是CAP原理&#xff1f;CAP原理是否适用于单机环境&#xff1f;3. 简述BASE理论的具体…

【附源码】计算机毕业设计JAVA校园疫情防控管理软件

【附源码】计算机毕业设计JAVA校园疫情防控管理软件 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA…

(SVN+SSH)搭建SVN并使用SSH进行免密拉取推送代码

【SVNSSH】搭建SVN并使用SSH进行免密拉取推送代码一、安装svn、openssh-server服务二、开启svn服务&#xff0c;创建测试仓库&#xff0c;并能通过账号密码拉取定义svn仓库文件位置创建仓库:acc_repo配置拉取仓库的账号密码通过账号密码拉取代码三、创建测试仓库&#xff0c;通…

云安全系列3:如何构建云安全策略

云计算拯救了很多企业&#xff0c;因为它可以迅速调整以支持更大规模的工作以及更多的在线用户。随着2023年的到来&#xff0c;宏观经济逆风聚集&#xff0c;它将更加具有吸引力&#xff0c;这归功于它更高的业务敏捷性和更优的成本效率比。Gartner 预测&#xff0c;到 2023 年…

聚观早报|腾讯员工平均月薪超8万;马斯克考虑卸任特斯拉CEO

今日要闻&#xff1a;腾讯员工平均月薪超8万&#xff1b;马斯克考虑卸任特斯拉CEO&#xff1b;iPhone双十一销量近350万部&#xff1b;暴雪将在大陆暂停多数服务&#xff1b;高德地图上线北斗卫星定位查询系统腾讯员工平均月薪超8万 据报道&#xff0c;腾讯控股11月16日发布202…