ke9案例三:页面提交文件,我服务器端接收

案例三:页面提交文件,我服务器端接收

ProcessFile.java

1value = "/process-file"

2获取邮件消息的所有部分part--Collection<Part> parts=request.getParts();

3遍历每一个part

4之后可以打印头文件等String header=part.getHeader("content-disposition");

 5打印文件名String fileName=header.substring(header.lastIndexOf("=")+2,header.lastIndexOf("\""));

ServletContext context =request.getServletContext();:获取ServletContext对象,用于获取服务器的上下文。

String savePath=context.getRealPath("/file");:获取服务器上 "/file" 的实际路径。物理地址

savePath += File.separator+fileName;:在路径中添加文件名。window的是反斜杠,File调用seoarator

9part.write(savePath);写到路径

part也有这个Header方法

不知道我们的文本放在哪里的??part.write(savePath);??怎么写进去

运行后就会文件放在我们的

package com.example.H5ke8demo;import javax.servlet.ServletContext;
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;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.util.Collection;@WebServlet(name = "ProcessFile", value = "/process-file")
@MultipartConfig
public class ProcessFile extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Collection<Part> parts=request.getParts();for(Part part:parts){
//            System.out.println("\n");String header=part.getHeader("content-disposition");
//            System.out.println(header);
//            System.out.println(part.getContentType());
//            System.out.println(part.getSize());
//            System.out.println(part.getName());String fileName=header.substring(header.lastIndexOf("=")+2,header.lastIndexOf("\""));
//            System.out.println(fileName);ServletContext context =request.getServletContext();String savePath=context.getRealPath("/file");savePath += File.separator+fileName;
//            System.out.println(savePath);part.write(savePath);//写入文件}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}

uploadfile.html

1inpput的file 设置multiple可以选多个文件

2创建一个FormData对象,这个就是表单对像一样的------表单是同步的我的FormData异步

3怎么模拟表单,加入键值对:            通过field.files返回长度---------file_field.files.length

                                                        append加的相当于 name,值--键值--------formDate.append

fetch发送给process-file

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>上传文件3</title></head><body>
<input type="file" multiple><input type="button" value="上传" id="upload-btn"><script>let btn=document.querySelector("#upload-btn");let file_field=document.querySelector("input[type=file]");//1放到表单里的btn.addEventListener("click",(event)=>{let formDate=new FormData();for(let i=0;i<file_field.files.length;i++){formDate.append("file"+(i+1),file_field.files[i]);//2文件数量}fetch("process-file",{method:"post",body:formDate}).then(response=>alert(response.status));})</script></body>
</html>

注意:

加上Multiparconfig注释才能接收文件

老师的问题他的webapp的file没有文件,加一个文件就行了''

html都要在webapp下

问题:

怎么知道这个物理路径是什么,默认快照里面

还有.then为什么不是两个

传文件作为网盘使用

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每天五分钟计算机视觉:搭建手写字体识别的卷积神经网络

本文重点 我们学习了卷积神经网络中的卷积层和池化层,这二者都是卷积神经网络中不可缺少的元素,本例中我们将搭建一个卷积神经网络完成手写字体识别。 卷积和池化的直观体现 手写字体识别 手写字体的图片大小是32*32*3的,它是一张 RGB 模式的图片,现在我们想识别它是从 …

Ubuntu 20.04源码安装git 2.35.1

《如何在 Ubuntu 20.04 上从源代码安装 Git [快速入门]》和《如何在 Ubuntu 20.04 上安装 Git》是我参考的博客。 https://git-scm.com/是git官网。 lsb_release -r看到操作系统版本是20.04。 uname -r看到内核版本是5.4.0-156-generic。 sudo apt update更新一下源。 完…

IDEA中如何移除未使用的import

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是全栈工…

自动化测试之争:code vs codeless

在TesterHome看到的一个话题&#xff0c;当我们选择做自动化时是否需要code 或者codeless。 code方案 用code去做自动化&#xff0c;实现过程就是拿个IDE撸代码。 python pytest/unittest appium/selenium/requests ... Java Junit/testNG appium/selenium/requests .…

Day21力扣打卡

打卡记录 在树上执行操作以后得到的最大分数&#xff08;树状DP&#xff09; 链接 大佬的题解 class Solution { public:long long maximumScoreAfterOperations(vector<vector<int>> &edges, vector<int> &values) {vector<vector<int>…

MapReduce:大数据处理的范式

一、介绍 在当今的数字时代&#xff0c;生成和收集的数据量正以前所未有的速度增长。这种数据的爆炸式增长催生了大数据领域&#xff0c;传统的数据处理方法往往不足。MapReduce是一个编程模型和相关框架&#xff0c;已成为应对大数据处理挑战的强大解决方案。本文探讨了MapRed…

虚拟局域网

目录 控制广播的方法 vlan 为什么需要vlan vlan的成员模式 vlan的实现 vlan表 vlan表的作用 静态vlan命令 交换机端口链路类型 trunk 前言 标签技术 trunk标签类型 trunk相关命令 单臂路由 前言 虚拟路由端口 创建路由器接口f0/0的子接口 vlan下的DHCP 网…

VueJs各个版本— 判断当前是开发、生产环境

VueJs各个版本— 判断当前是开发、生产环境 文章目录 VueJs各个版本— 判断当前是开发、生产环境vue项目分类VueCLI21&#xff0c;判断样例2&#xff0c;判断原理 Vue CLI 3 和 Vue CLI 41&#xff0c;判断样例2, 判断原理手动设置-json文件手动设置- .env 文件单个 .env 文件多…

雨水收集设施模块把雨水收集起来,经简单处理用于消防洗车冲厕等

雨水收集设施模块是一种利用雨水资源的环保设施&#xff0c;它可以将雨水收集起来&#xff0c;经过简单的处理后&#xff0c;用于消防、洗车、冲厕等用途。 雨水收集设施模块通常由多个雨水收集器组成&#xff0c;每个收集器都有一个集水口和一个小型储水池。当雨水流入集水口…

crond服务

目录 一、crond服务基础知识 1、crond服务介绍 2、查看crond服务的状态 3、crond服务配置文件详解 4、额外的配置文件目录 二、crond服务基础命令 1、crond服务使用 2、 管理和操作 crond 服务 3、crond服务命令举例 一、crond服务基础知识 1、crond服务介绍 1、crond…

网易按照作者批量采集新闻资讯软件说明文档

大家好&#xff0c;我是淘小白~ 今天给大家介绍的爬虫软件是网易按照作者采集的软件 1、软件语言&#xff1a; Python 2、使用到的工具 Python selenium库、谷歌浏览器、谷歌浏览器驱动 3、文件说明&#xff1a; 4、配置文件说明&#xff1a; 5、环境配置 安装Python&am…