被文件上传弄得焦头烂额的一天,果然web中的路径和各种设置真的好讨厌= =

下面是超级小白的、及其简约的“详”解

1、明确目的:

用户将 1.txt 文件 上传到 服务器(web工程下的某个文件夹)中

2、明确过程

文件上传的过程涉及两个文件, 一个 .jsp文件,和 一个 servlet 文件。

.jsp文件(upload.jsp):用户操作页面 =显示文件名的文本框+文件选择按钮(浏览...)+确认上传按钮

servlet文件(uploadServlet.java):根据.jsp中选择的文件,处理文件上传

3、开始敲代码(掀桌!)

.jsp文件

文件上传 //关键句1

文件名:

.jsp中的关键语句:

关键句1:

//form中的数据用二进制数据传输,可以传文字,图片,。。

关键句2:    //type 设成“file”就是文件选择按钮,自动产生一个 文本框+选择按钮

servlet文件:

importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.annotation.MultipartConfig;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.Part;

@WebServlet(name= "UploadServlet", urlPatterns = { "/upload.do"})public class UploadServlet extendsHttpServlet {private static final long serialVersionUID = 1L;publicUploadServlet() {super();

}protected voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

String path= this.getServletContext().getRealPath("/");//path为工程根目录:(web工程名为test)//D:\tomcat\apache-tomcat-8.0.50-windows-x64\apache-tomcat-8.0.50\webapps\test\

Part part= request.getPart("fileName");//part代表一个文件String h= part.getHeader("content-disposition");//h是要上传的文件的头:具体如下(上传桌面上的account.txt文件)//form-data; name="fileName"; filename="C:\Users\ASUS\Desktop\account.txt"//把传上来的account.txt文件命名为"newFile"保存在服务器中

String fname = "newFile";//substring是在获取文件的后缀,改名但是不改后缀

fname = fname + h.substring(h.lastIndexOf("."), h.length() - 1);//按照路径上传文件(修改path可以改变文件在服务器中的存储位置)

part.write(path + "\\" +fname);//提示上传成功

PrintWriter out =response.getWriter();

out.println("

");

out.println("

上传文件");

out.println("

");

out.println("

上传成功!

");

out.println("");

}

}

总结

我觉得最关键的语句是 Part part= request.getPart("fileName"); 我把Part接口理解为文件本身,part.write(path + "\\" +fname);就理解为把part按照括号中的路径写进去,这里的路径是包含文件名称的,相当于一个盒子,part则是盒子中实际的文件内容。

获得文件后缀的方法值得注意。

part.write java_小白向:web中利用request.getPart()上传文件到服务器相关推荐

  1. 在 node 中使用 koa-multer 库上传文件详解

    本文主要介绍了上传单个文件.多个文件,文件数量大小限制.限制文件上传类型和对上传的图片进行不同大小的裁剪,阅读本篇文章需要具备一定的 node 和 koa 框架的基础知识以及 async await ...

  2. Android上传文件到服务器500,使用WebUploader解决安卓微信浏览器上传图片中遇到的bug...

    摘自个人博客:走啊走的记录,欢迎点击查看,效果更佳! 微信浏览器上传图片bug的原因 微信在新版本中采用的是自己的X5内核浏览器,而在较老的版本中还有可能是安卓的原生浏览器.具体的环境我也不太了解,但 ...

  3. 在jsp中使用smartupload组件上传文件- -

    在jsp中使用smartupload组件上传文件- - jsp对上传文件的支持不象php中支持的那么好,直接做成了函数,也不象asp中要通过组件才能实现.jsp中可以通过javabean来实现.但是我 ...

  4. android项目中使用的服务器上,android 开发中使用okhttp上传文件到服务器

    开发android手机客户端,常常会需要上传文件到服务器,比如:你手机里的照片. 使用okhttp会是一个很好的选择.它使用很简单,而且运行效率也很高. 首先,在 app/build.gradle 的 ...

  5. 修改form重定到iframe中,模拟异步上传文件的效果

    2019独角兽企业重金招聘Python工程师标准>>> <%@ page contentType="text/html; charset=GBK" lang ...

  6. 【文件上传漏洞-02】利用PUT方法上传文件—以Apache为例

    目录 1 http协议请求方法概述 2 Apache开启PUT请求方法的过程 2.1 实验环境 2.3 查询已开启的请求类型 2.3 开启put方法 3 文件上传漏洞利用 3.1 上传PHP探针 3. ...

  7. putty怎么进入文件夹_如何利用putty工具上传文件 - 卡饭网

    图解使用FTP工具上传文件以FlashFXP为例 图解使用FTP工具上传文件以FlashFXP为例 现以FlashFXP为例,图解使用FTP工具上传文件. 1: 运行 LeapFTP,点击1处(站点- ...

  8. 利用PUT方式上传文件的方法研究

    虽然没有POST方法使用广泛,但是PUT方法却是向服务器上传文件最有效率的方法.POST上传文件时,我们通常需要将所有的信息组合成 multipart 传送过去,然后服务器再解码这些信息,解码过程则必 ...

  9. web ui自动化之模拟上传文件操作

    文章目录 前言 方法一.使用Autolt生成exe文件,在Python中调用 AutoIt介绍及安装 定位元素插件的使用 编写脚本 将脚本转换成可执行文件 python代码 在python中调用 方法 ...

最新文章

  1. VC++代码转换为QT代码问题总结
  2. kafka概述与下一代消息队列
  3. 【计算机网络(微课版)】第2章 物理层 课后习题及答案
  4. 【腾讯Bugly干货分享】Android Patch 方案与持续交付
  5. Qt Remote Object(QtRO)实现进程间通信
  6. ASP.NET Core 基于SignalR实时通讯的前后端分离技术
  7. qtabbar设置不同宽度_透水地坪需要设置伸缩缝吗?
  8. CF 354E DFS
  9. 解决办法:发生故障,这可能是有软件包被要求保持现状的缘故
  10. halcon 深度学习标注_深度学习in Halcon流程
  11. IIS写入漏洞利用工具解析
  12. 广大银行java 面试_2018光大银行春季招聘面试题目及答案
  13. jvm内存区域之虚拟机栈、pc计数器、本地方法栈
  14. c语言怎么加中文注释,谁能对我的C语言程序作出中文注释
  15. P9065 [yLOI2023] 云梦谣 题解
  16. Liip-imagine-bundle 在 Nignx 无法生成缓存图的问题
  17. 万代南梦宫(中国)旗下数字娱乐、玩具娱乐业务整合;IBM简化混合云上关键任务应用的现代化进程 | 全球TMT...
  18. 《张孝祥JAVA就业培训教程》书摘
  19. CSS入门 0x3 链接样式
  20. .NET开源工作流RoadFlow-快速入门

热门文章

  1. 【Matlab】如何把数组矩阵写入txt文件?并用逗号或空格隔开
  2. 科大星云诗社动态20210906
  3. html video 设置进度条不可拖动_PHP大文件切割上传并带上进度条功能,不妨一试...
  4. GRE难句典型结构2
  5. VTK修炼之道44:图形进阶_vtkPolyData数据源讨论与数据创建
  6. powerdesigner自动生成代码的修改
  7. c++中实现delphi的按类名生成类对象
  8. python保存几位小数 format
  9. 9.png(9位图)在android中作为background使用导致居中属性不起作用的解决方法
  10. 拆解 Linux 网络包发送过程