JavaWeb(文件上传 异步文件上传 文件下载)

文件上传

上传文件对表单的要求(前端<form>)
	1.请求方式为post method="post"
	2.enctype="multipart/form-data"
	3.使用 文件表单项上传文件
		用户名:<input type="text" name="username">
		文件:<input type="file" name="photo">
		<input type="submit" value="提交">
		
对servlet限制
	1.request.getParameter()方法不能再使用	
    	即使用了也获取的是null
	2.request.getInputStream()来获取所有消息体数据
	
使用第三方工具类,来解析请求体中的文件的数据
	1.导入jar包
    	commons-fileupload.jar
    	commons-io.jar
	2.创建解析器工厂
		new DiskFileItemFactory();
	3.获取解析器
		new ServletFileUpload(diskFileItemFactory);
	4.解析request对象 返回List<FileItem> (表单项对象集合)
    	servletFileUpload.parseRequest(request);
    5.遍历集合 获取每一个表单项 获取数据
    	for(FileItem fileItem : list)
    	判断是否是普通表单项
    	boolean b = fileItem.isFormField();
    	获取表单项name名称
    	fileItem.getFieldName();
            true 表示普通表单项
            	if("username".equals(fieldName))
            	 	获取表单项的值
            		String name = fileItem.getString();
            false 表示文件表单项
                getName();获取文件名
                getSize();获取文件大小 单位字节
                getContentType();获取文件类型
                将文件写入硬盘
                这个upload文件夹一开始判断一下,如果不存在,要用代码创建出来
                File dir = new File(this.getServletContext().getRealPath("/upload"));
                File file = new File(dir,name);
                fileItem.write(file);

        

快速入门

@WebServlet(value = "/fileUpload", name = "FileUploadServlet")
public class FileUploadServlet extends HttpServlet {
   
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
        try {
   
            //创建解析器工厂
            DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
            //获取解析器
            ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
            //解析request对象,返回 List<FileItem > (表单项对象集合)
            //FileItem 表单项对象
            List<FileItem> list = servletFileUpload.parseRequest(request);

            //用户的账号密码
            String uname = null;
            String upwd = null;
            //遍历集合,获取每一个表单项,获取数据
            for (FileItem fileItem : list) {
   
                boolean formField = fileItem.isFormField();
                //获取表单项的名称
                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaWeb 文件上传下载可以通过以下步骤实现: 1. 文件上传 1.1 在表单中添加文件选择框 ```html <form action="upload" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit" value="上传" /> </form> ``` 1.2 编写上传文件Servlet ```java @WebServlet("/upload") @MultipartConfig public class UploadServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Part filePart = request.getPart("file"); String fileName = filePart.getSubmittedFileName(); InputStream fileContent = filePart.getInputStream(); // 处理上传的文件 } } ``` 2. 文件下载 2.1 在页面中添加下载链接 ```html <a href="download?fileName=example.txt">下载</a> ``` 2.2 编写下载文件Servlet ```java @WebServlet("/download") public class DownloadServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileName = request.getParameter("fileName"); File file = new File("path/to/files/" + fileName); response.setContentType("application/octet-stream"); response.setContentLength((int) file.length()); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); try (InputStream in = new FileInputStream(file); OutputStream out = response.getOutputStream()) { byte[] buffer = new byte[1024]; int length; while ((length = in.read(buffer)) > 0) { out.write(buffer, 0, length); } } } } ``` 以上就是 JavaWeb 文件上传下载的实现方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值