Servlet上传文件

news2024/9/22 15:46:17

一、核心方法

1、HttpServletRequest类相关方法

方法描述
Part  getPart(String name)获取请求中给定name的文件
Collection<Part>  getParts()获取所有的文件

2、Part类相关方法

方法描述
String  getSubmittedFileName()获取文件名
String  getContentType()获取文件类型
long  getSize()获取文件的大小
void  write(String path)把文件数据写入指定路径的磁盘文件

二、代码示例

实现程序,通过网页上传一张图片到服务器。

1、前端代码

首先在webapp目录下创建一个upload.html文件,然后编写代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>上传文件</title>
</head>
<body>
    <form action="upload" method="post" enctype="multipart/form-data">
        <input type="file" name="myfile">
        <input type="submit" value="上传">
    </form>
</body>
</html>

注意:

(1) 上传文件时的请求为POST请求;

(2) form表单中要加上enctype属性,值为 "multipart/form-data"

2、后端代码

@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Part part = req.getPart("myfile");
        System.out.println(part.getSubmittedFileName());//获取文件的真实名
        System.out.println(part.getSize());//获取文件大小
        System.out.println(part.getContentType());//获取文件类型
        part.write("D:/鸡哥/result.jpg");//把文件数据保存到硬盘
    }
}

注意:

3、查看结果

服务器:

硬盘:

请求:

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

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

相关文章

【Hack The Box】Linux练习-- Knife

HTB 学习笔记 【Hack The Box】Linux练习-- Knife &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月17日&#x1f334; &#x1f36…

Docker——镜像操作命令

目录 一、镜像操作命令 1.1 镜像操作命令&#xff08;常用图示&#xff09; 1.2 查看docker帮助文档 1.3 案例&#xff1a;从DockerHub拉取Nginx镜像并查看 1.3.1 拉取 1.3.2 查看 1.4 案例&#xff1a;利用docker save将Nginx镜像导出磁盘&#xff0c;然后再通过load加…

一文讲清场景工程方法论及运维组织能力内化

随着业务支撑要求的变化&#xff0c;和技术架构的升级&#xff0c;运维管理建设模式跟之前也有了很大区别&#xff0c;场景上更注重主动工作、防范风险&#xff0c;而体系上更注重赋能组织、平台化、一体化。 因而&#xff0c;我们基于过去几年的大量客户实践&#xff0c;分享…

关于HashMap默认容量的选择

HashMap默认容量思量什么是容量容量与哈希hash的实现指定容量初始化扩容思考总结集合是Java开发日常开发中经常会使用到的&#xff0c;而作为一种典型的K-V结构的数据结构&#xff0c;HashMap对于Java开发者一定不陌生。 在日常开发中&#xff0c;经常会像如下方式创建一个Has…

使用IntelliJ IDEA创建Maven项目并上传项目至gitlab等远程仓库

步骤&#xff1a; 新建Maven项目&#xff0c;添加web.xml文件&#xff0c;只编写一个html页面用于测试&#xff0c;tomcat部署&#xff0c;配置git&#xff0c;上传到gitlab 1. Maven创建Web项目&#xff0c;命名为testci 2. 点击File —> Project Structure —>Facets—…

分享35个ASP源码,总有一款适合您

链接&#xff1a;https://pan.baidu.com/s/1t-Biw9LihpPwrwfJNLoTPw?pwdfxol 提取码&#xff1a;fxol 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后可以看到。 40400互联网上报名系统 医院会员注册系统…

132-142-Hadoop-Yarn-常用命令生产环境等配置

132-Hadoop-Yarn-常用命令生产环境等配置&#xff1a; Yarn常用命令&#xff1a; 1、启动集群 2、执行一个案例 [roothadoop102 hadoop-3.1.4]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount /input /ouput013、查看结果 yarn applic…

【云原生 | Kubernetes 实战】02、k8s 核心资源 Pod 介绍

目录 一、Pod是什么&#xff1f; 白话解释&#xff1a; 1.1 Pod如何管理多个容器&#xff1f; 1.1.2 Pod网络 1.1.3 Pod存储 1.2 之前学习过容器&#xff08;如docker&#xff09;&#xff0c;为什么还需要Pod&#xff1f; 1.2.1 代码自动发版更新 1.2.2 收集业务日志 …

【Kubernetes系列】工作负载资源之ReplicaSet

文章目录概述工作原理何时使用示例ReplicaSet的配置Pod 模板Pod 选择算符Replicas操作使用ReplicaSet删除 ReplicaSet 和它的 Pod只删除 ReplicaSet将 Pod 从 ReplicaSet 中隔离扩缩 ReplicaSetReplicaSet 的替代方案Deployment&#xff08;推荐&#xff09;裸 PodJobDaemonSet…

twitter推文采集案例

案例内容:twitter的推文采集。 通过游客身份获取twitter中用户的推文。 用户推文:只能翻22页,1页45条左右。 每个用户最多获取最近900条推文 (登录后),不登录区别也不大。 UserByScreenName 一般只有用户名的时候,需要先通过UserByScreenName接口获取 rest_id 用于后…

frp穿透你的远程桌面

缘起 作为一个程序员&#xff0c;经常会遇到需要使用远程桌面的述求&#xff08;居家办公、加班&#xff0c;你懂的&#xff09;。所以&#xff0c;在网上找一圈远程桌面解决方案之后&#xff0c;最终还是使用frp来穿透远程桌面。&#xff08;推荐使用&#xff09; 前提 需要…

计算机内功修炼:程序的机器级表示(C与汇编)

程序的机器级表示历史观点程序编码1. 机器级代码2. 代码示例数据格式访问信息1. 操作数指示符2. 数据传送指令算术与逻辑操作1. 加载有效地址2. 一元操作和二元操作3. 移位操作例子特殊的算术操作控制1. 条件码2. 访问条件码3. 跳转指令及编码4. 翻译条件分支5. 循环6. 条件传送…

[附源码]计算机毕业设计JAVA龙虎时代健身房管理系统

[附源码]计算机毕业设计JAVA龙虎时代健身房管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM …

JDBC数据库的连接

JDBC数据库的连接 简介&#xff1a;本文以简洁的篇幅带领大家快速入门java连接数据库&#xff0c;以查询为演示方案。 编写代码步骤 创建工程&#xff0c;导入驱动jar包 下载官网&#xff1a;https://downloads.mysql.com/archives/c-j/ 注册驱动 # mysql5的注册驱动的办法…

BEV感知PETR-V1和PETR-V2

参考代码&#xff1a;PETR 1. 概述 介绍&#xff1a;这两篇文章提出了以位置编码转换&#xff08;PETR&#xff0c;position embedding transformation&#xff09;为基础的BEV感知方法&#xff0c;按照方法中组件不同可将PETR划分为V1和V2版本。在V1版本中提出了基础版本的PE…

【C++】c++11学习-常用特性总结

前言 由于种种历史原因&#xff0c;C的C11版本更新带来了很多有用的东西~&#xff0c;在C98的基础语法体系之上&#xff0c;来看看C11新增了哪些实用的特性吧~ &#xff08;加把劲~~(๑╹◡╹)&#xff89;"""&#xff09; 目录 一、列表初始化 1.原始的列…

Mysql8.x版本主从加读写分离(二) mysql8.x读写分离

Mysql8.x版本主从加读写分离&#xff08;一&#xff09; mysql8.x主从_争取不加班&#xff01;的博客-CSDN博客 Mycata需要使用jdk 单独一台服务器部署的mycat 192.168.11.143 手动上传jdk的包 tar zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/ 解压 cd /usr/local…

c++ - 第14节 - c++中的多态

1. 多态的概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态。举个栗子&#xff1a;比如买票这个行为&#xff0c;当普通人买票时&#xff0c;是全价买票&#xff1b;学生…

如何运行黑马程序员redis项目黑马点评(hm-dianping)、常见报错解决与部分接口的测试方法

文章目录一、相关链接二、下载代码方法一&#xff1a;使用git clone方法二&#xff1a;直接下载程序zip压缩包三、如何运行这份代码运行sql文件1、先新建数据库hmdp2、导入项目中的hmdp.sql文件修改application.yaml配置文件配置Mysql1、配置驱动2、配置url&#xff08;这个不一…

Allwinner T3 汽车级处理器为工业级 SoM 提供动力

Allwinner T3 是一款四核 Cortex-A7 汽车级处理器&#xff0c;支持 -40C 至 85C 的宽工业温度范围。对比了全志T3的规格后&#xff0c;我觉得和全志A40i差不多&#xff0c;因为全志有不同的事业部&#xff0c;T系列是面向车规级市场&#xff0c;而A系列一直以来都是面向平板市场…