首页 > 其他分享 >文件上传后端 随堂代码1208

文件上传后端 随堂代码1208

时间:2022-12-08 10:04:00浏览次数:53  
标签:控件 1208 System 随堂 item println import 上传 out

package servlet;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.List;

@WebServlet("/upload")
public class Upload extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("解决乱码问题");
req.setCharacterEncoding("utf8");

System.out.println("已进入post请求");

System.out.println("确认这个表单是不是multipart表单");
boolean multipartContent = ServletFileUpload.isMultipartContent(req);
System.out.println(multipartContent);

System.out.println("期望上传的文件都保存在一个名叫uploads目录中");
System.out.println("获取该目录的路径");
String uploadsPath = req.getServletContext().getRealPath("uploads");
System.out.println(uploadsPath);

System.out.println("判断这个路径是否存在");
File uploadFile = new File(uploadsPath);
boolean exists = uploadFile.exists();

if (!exists) {
System.out.println("文件夹不存在,我们就创建");
boolean mkdir = uploadFile.mkdir();
System.out.println("创建目录的结果");
System.out.println(mkdir);
}

System.out.println("代码来到此处,一定就存在上传资源的存放目录了");
System.out.println(uploadsPath);


System.out.println("主要的保存文件操作===========");

if (multipartContent) {
// 工厂
FileItemFactory diskFileItemFactory = new DiskFileItemFactory();
// 规则
ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
// 利用规则解析请求
List<FileItem> list = null;
try {
list = servletFileUpload.parseRequest(req);
} catch (FileUploadException e) {
e.printStackTrace();
}
// 【item1,itemn】

// 遍历集合
for (FileItem item :
list) {
// 判断成员是否是普通的字段控件
boolean formField = item.isFormField();

// 如果是普通控件
if (formField) {
// 当前item是一个普通的控件
// 取值
String value = item.getString("utf8");
String name = item.getName();
System.out.println("当前控件的name是" + name);
System.out.println("当前控件的值是" + value);
}
// 如果不是普通控件
else {
// 当前item一定是文件上传控件
// 获取文件名
String name = item.getName();
// 拼一个保存的路径
File file = new File(uploadsPath, name);
// 保存数据
try {
item.write(file);
} catch (Exception e) {
e.printStackTrace();
}
}

}

} else {
String name = req.getParameter("name");
}

}
}

标签:控件,1208,System,随堂,item,println,import,上传,out
From: https://blog.51cto.com/u_13137233/5920436

相关文章

  • feign-reactive 框架下实现图片上传
    springwebFlux微服务实现图片上传,经过两天的摸索,我的实现方案是:首先,把文件一传到消费者,生成FilePart对象,把FilePart对象通过Feignreactive传给服务者最后,在服务端......
  • git 上传github
    教程生成SSHKeyssh-keygen-trsa-C"[email protected]"或者用户目录下面生成.ssh文件夹复制里面的id_rsa.pub到githubSSHandGPGkeys创建新的仓库根据仓......
  • git首次上传远程仓库
    git首次上传第一步:建立git仓库,cd到你的本地项目根目录下,执行git命令gitinit第二步:将项目的所有文件添加到仓库中gitadd.第三步:将add的文件commit到仓库......
  • 使用@RequestPart同时上传表单数据和文件(文件与JSON数据同时上传)
    前端接口上传文件的时候,通常会将请求header的content-type设置为:multipart/form-data,或者form表单提交的时候将enctype设置为"multipart/form-data"。后端收到请求时......
  • 使用ajaxFileUpload实现文件异步上传
     最近在项目中遇到要使用ajax提交包含file输入框的表单的情况,网上查了下,发现ajaxFileUpload.js插件的比较多。就研究了下,发现真的不错。传统的包含file输入框的表单提交遇......
  • web技术分享| 图片上传与图片裁剪结合 vue3
    需求:上传的图片限制长宽相同;只能上传图片;图片大小限制500k当前项目仅需要上传的图片信息项目组件使用裁剪:vue-cropperimport"vue-cropper/dist/index.c......
  • spring-boot构建docker镜像上传仓库
    spring-boot构建docker镜像上传仓库创建一个简单spring-boot-web项目<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xm......
  • SiteFactory支持ppt自动上传
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-......
  • layui文件上传需要编写动态URL的时候需要重载方法
    varuploadInst=upload.render({elem:'#WebButton'/*,url:url//此处配置你自己的上传接口即可*/,auto:true......
  • vue使用阿里云视频点播 上传后- 如何播放
    阿里云视频点播  播放器SDK-- web播放器文档地址:https://www.alibabacloud.com/help/zh/apsaravideo-for-vod/latest/apsaravideo-player-sdk-for-web-overview ......