文件上传保存
- 关于这些按钮,能够干啥,然后跳转到那个页面,然后你在去实现什么样的功能,这时候就需要我们按步骤去实现
- 第一步我们需要点击上传按钮调用的是JavaScript的方法来进行
<li class="active"><a href="javascript:tofileup()">上传文件</a></li>
- 需要编写tofileup()这个方法这里使用layui组件需要提前引入见layui的引入
function tofileup() {
layer.open({
type: 2,
title: '上传文件',
shadeClose: true,
shade: 0.6,
area: ['30%', '55%'],
maxmin: true,
anim:1,
//指的是弹出的页面的路径
content: 'jsp/tofileup/tofileup.jsp', //iframe的url
});
}
- 记下来需要编写tofileup.jsp文件
<script type="text/javascript">
function on() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
}
</script>
</head>
<body>
<!-- form表单中加入enctype加上就会使file声明成为文件信息,不加则为文本信息 -->
<form action="../../FileServlet" method="post" enctype="multipart/form-data" >
<!-- 开放多文件multiple="multiple" -->
上传:<input type="file"name="file" multiple="multiple">
<br><br>
<input type="submit" onclick="on()" value="确认">
</form>
- 通过这个页面需要 提交这个时候需要actio这个是连接servlet层的接下来我们要去到servlet层
package com.uek.servlet;
import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
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;
@WebServlet("/FileServlet")
//定配置文件上传目的地
@MultipartConfig(location = "C:\\Users\\bears\\eclipse-workspace\\20210816\\WebContent\\up_files")
public class FileServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
/*放在程序执行前,不然没有效果
*request.setCharacterEncoding(“utf-8”)能够解决中文乱码问题,但不能解决超链接时传递中文参数出现的乱码问题
*解决方法:需要配置我们的tomcat服务器 的一个文档server.xml,找到后面添上URIEncoding=“utf-8”,然后重启tomcat服务器
*/
request.setCharacterEncoding("UTF-8");
//servlet3.0简单之处,里面有一个方法用于上传文件
//getParts请求传递过来的所有 然后放到parts这个集合
Collection<Part> parts = request.getParts();
//利用迭代器进行遍历
Iterator<Part> partsIT = parts.iterator();
//得到遍历需要上传的文件
while(partsIT.hasNext()) {
Part part=partsIT.next();
String str = part.getHeader("content-disposition");
//打印输出表单信息
System.out.println(str);
// 截取字符串---
String mz = str.split("\"")[3];
// 输出为write
part.write(mz);
}
//写文件信息
//String str = part.getHeader("content-disposition");
//查看str里面的信息
//System.out.println(str);
//截取字符串---
//String mz = str.split("\"")[3];
//输出为write
//part.write(mz);
}
}