form表单的普通文本和文件上传

您所在的位置:网站首页 如何获取表单中的数据源信息和文件 form表单的普通文本和文件上传

form表单的普通文本和文件上传

2023-09-10 01:27| 来源: 网络整理| 查看: 265

一、文件的上传和下载原理 1、文件上传的原理分析

1.1文件上传的必要前提: a、提供form表单,method必须是post b、form表单的enctype必须是multipart/form-data c、提供input type="file"类的上传输入域

1.2enctype属性 作用:告知服务器请求正文的MIME类型。(请求消息头:Content-Type作用是一致的)可选值:

1、application/x-www-form-urlencoded(默认): 正文:name=admin&password=123 服务器获取数据:String name = request.getParameter(“name”); 2、multipart/form-data: 正文: 在这里插入图片描述 服务器获取数据:request.getParameter(String)方法获取指定的表单字段字符内容,但文件上传表单已经不在是字符内容,而是字节内容,所以失效。

2、借助第三方的上传组件实现文件上传

2.1 fileupload概述 fileupload是由apache的commons组件提供的上传组件。它最主要的工作就是帮我们解析request.getInputStream()。 导入commons-fileupload相关jar包 1、commons-fileupload.jar,核心包; 2、commons-io.jar,依赖包。

2.2 fileupload的核心类有: DiskFileItemFactory、ServletFileUpload、FileItem。

a、解析原理 在这里插入图片描述 2.3 fileupload简单应用

使用fileupload组件的步骤如下: 1.创建工厂类DiskFileItemFactory对象: DiskFileItemFactory factory = new DiskFileItemFactory() 2.使用工厂创建解析器对象: ServletFileUpload fileUpload = new ServletFileUpload(factory) 3.使用解析器来解析request对象: List list = fileUpload.parseRequest(request)

FileItem对象对应一个表单项(表单字段)。可以是文件字段或普通字段。 1、boolean isFormField():判断当前表单字段是否为普通文本字段,如果返回false,说明是文件字段; 2、String getFieldName():获取字段名称,例如:,返回的是username; 3、String getString():获取字段的内容,如果是文件字段,那么获取的是文件内容,当然上传的文件必须是文本文件; 4、String getName():获取文件字段的文件名称;(a.txt) 5、String getContentType():获取上传的文件的MIME类型,例如:text/plain。 6、int getSize():获取上传文件的大小; 7、InputStream getInputStream():获取上传文件对应的输入流; 8、void write(File):把上传的文件保存到指定文件中。 9、delete();

二、代码 1、页面代码。

注:form表单里面加上参数 enctype=“multipart/form-data”。js的作用是添加选择文件按钮,删除选择文件按钮。

图示:

在这里插入图片描述

var webtype=".$webType"; var merchantUrl=""; var contextPath="${contextPath}"; function addFile() { var div1 = document.getElementById("div1"); div1.innerHTML +="\n" + " \n" + " " } function delFile(input) { input.parentNode.parentNode.removeChild(input.parentNode); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3