Python 官方文档:入门教程 => 点击学习
目录引言前端上传文件后端接受文件总结 引言 这里实现一个简单的图片上传功能,主要是熟悉这个文件上传的交互流程。关于更复杂的文件上传,如大文件的切片上传、断点续传等,这里不做
这里实现一个简单的图片上传功能,主要是熟悉这个文件上传的交互流程。关于更复杂的文件上传,如大文件的切片上传、断点续传等,这里不做过多介绍。
首先在前端创建一个页面,这里我们选择通过fORM表单的形式上传文件。在选择时,使用input标签中 的file类型就可以自动的选择本地文件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传一张图片</title>
</head>
<body>
<form action="upload" method="POST" enctype="multipart/form-data">
<input type="file" name="MyImage">
<input type="submit" value="提交图片">
</form>
</body>
</html>
代码解释:
enctype属性:
application/x-www=form-urlencoded:默认方式,只处理表单域中的 value 属性值,将表单域中的值处理成URL
编码方式;
multipart/form-data:以二进制流的方式处理表单数据,除了表单域中的 value 属性值,还会处理表单域的文件内容,将其封装到请求参数中,不会对字符编码;
text/plain:将空格转换为+号,其它字符不做编码处理,适用于通过表单发送邮件。
小结:
在服务器这边处理请求,并将请求中的文件取出并重新保存,最后将代码部署到Tomcat上.
在解析请求中的文件时,需要用到Servlet中的getPart方法.此方法的参数是对应的文件名name
在前端上传文件的时候,可以一次选择多个文件上传,其中每个文件,会被包装成一个Part对象.每个文件都会有自己的文件名name,服务器这边就可以根据文件名来找到对应的Part,在Part中就包含了对应文件信息。
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.IOException;
@MultipartConfig
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.从请求对象中,读取出Part对象
Part part =req.getPart("MyImage");
//2.读取到Part 对象中的一些参数
System.out.println(part.getSubmittedFileName()); // 上传文件真实的文件名
System.out.println(part.getContentType()); // 文件的类型
System.out.println(part.getSize()); // 文件的大小
//3.把文件写入到指定的目录中
part.write("c:/temp/MyImage.jpg");
//4.返回一个响应,通知用户上传成功
resp.getWriter().write("upload OK !");
}
}
代码解释:
在浏览器中输入URL,发送请求,开始上传文件
上传成功
在本地对应的路径中,可以看到被上传的文件
到此这篇关于javaweb简单文件上传的文章就介绍到这了,更多相关JavaWeb文件上传流程内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: JavaWeb简单文件上传流程的实战记录
本文链接: https://lsjlt.com/news/144594.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0