当前位置: 首页 > news >正文

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.lryc.cn/news/222658.html

相关文章:

  • springboot调用第三方接口json转换成对象
  • uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果
  • 麒麟信安获批牵头成立国家关键领域信创行业产教融合共同体
  • 好消息,微信消费者投诉工具升级,可以直接回复用户、处理投诉了。。。
  • 手动修复 rabbitmq 报错 “Crash dump is being written to“
  • 日志门面技术
  • 机器人制作开源方案 | 管内检测维护机器人
  • k8s存储卷
  • View 自定义 - 属性 xml
  • 2007-2022年全国各地级市金融机构网点数据
  • OpenAI开发者大会掀起风暴:GPT模型价格狂降50%,应用商店即将亮相,AI技术将引爆全球!
  • yo!这里是STL::unordered系列简单模拟实现
  • 基础课25——业务流程分析
  • 快速实现一个企业级域名 SSL 证书有效期监控巡检系统
  • [SSD综述 1.5] SSD 主控和固件核心功能详解(万字)
  • Mybatis-Plus前后端分离多表联查模糊查询分页
  • 【Ruoyi管理后台】用户登录强制修改密码
  • 计算机网络基础知识1
  • 人机交互中的多/变尺度态势感知
  • 命名管道原理(和匿名管道的对比),mkfifo(命令行,函数),命名管道模拟实现代码+与多个子进程通信代码
  • pytest全局变量的使用
  • FreeRTOS源码阅读笔记2--list.c
  • 杂货铺 | citespace的使用
  • C++ 静态成员变量初始化规则
  • Docker安装、卸载,以及各种操作
  • 深入理解 C 语言的内存管理
  • 利用Caddy实现http反向代理
  • 【Qt之QVariant】使用
  • xv6实验课程--xv6的写时复制fork(2023)
  • 在Windows或Mac上安装并运行LLAMA2