具体代码如下所示 :
*** web.xml *** <? xml version = "1.0"encoding = "utf-8"?> <web-app xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance xmlns : web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi : schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "id ="webapp_id "version ="2.5 "> <servlet> <servlet-name> fileUpload </servlet-name> <servlet-class> cn.comact.action </servlet class> </servlet class> <Servlet-name> fileUpload </servlet-name> <url-pattern>/fileUpload </url-pattern> </servlet-mapping> </web-app>
package cn.com.action; import java.io.file; import java.io.*; import java.io.ioException; import java.util.list; import javax.servlet.servletexception; import javax.servlet.http.httpervlet; import javax.servlet.httpper.httpper.httpper.httppert.; javax.servlet.http.httpervletresponse; import org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.fileuploadexception; import org.apache.commons.fileupload.disk.diskfileitemfformor; import org.apache.commons.fileupload.servlet.servletfileupload;/** * * @author 관리자 * 文件上传 * 具体步骤 : * 1 뇨 추 kfileitemfactory 要导包 * 2 ← 获取 真实路径 真实路径 真实路径 真实路径 供临时文件存储, 和 和 最终文件存储 最终文件存储, 这两个存储位置可不同 这两个存储位置可不同 这两个存储位置可不同 这两个存储位置可不同 * 3 찾고 对 对 属性} 4) i API 文件上传处理 ServletFileUpload 업로드 = New ServletFileUpload (Factory); * est parserequest (request arequest) 方法 获得 fileItem 集合 목록, * * 5 찾고 在 fileItem 对象中 获取信息 获取信息, 遍历, 判断 表单提交过来的信息 是否是 是否是 普通文本信息 另做处理 * 6 찾고 * 第一种 第一种. 用第三方 用第三方 it item.write (새 파일 (path, filename)); 直接写到磁盘上 * 第二种. 手动处理 * */public class fileUpload는 httpservlet {public void doget (httpservletrequest request, httpservletresponse 응답)을 servletexception, ioexception {request.setcharacterencoding ( "utf-8"); // 设置编码 // 设置编码 DiskFileItemFactory factory = new DiskFileItemFactory (); // string path = request.getRealPath ( "/upload1"); // string path = "c :/upload1"; // 如果没以下两行设置的话 如果没以下两行设置的话, 如果没以下两行设置的话 文件 会占用 很多内存 很多内存, // 设置暂时存放的 存储室 存储室, 这个存储室 这个存储室, 可以和 最终存储文件 的目录不同 的目录不同/** * 原理 它是先存到 暂时存储室 暂时存储室 暂时存储室 然后在真正写到 对应目录的硬盘上 对应目录的硬盘上 对应目录的硬盘上, * 按理来说 当上传一个文件时 当上传一个文件时, 其实是上传了两份 .tem 格式的 * 然后再将其真正写到 */factory.setRepositority (새 파일 (경로)); // 设置 缓存的大小 缓存的大小, 当上传文件的容量超过该缓存时 当上传文件的容量超过该缓存时, 直接放到 暂时存储室 in actory.setsizethreshold (1024*1024); // API 高水平的 ServletFileUpload 업로드 = New ServletFileUpload (Factory); try {// /list <fileitem> list = (list <fileitem>) upload.parserequest (request); for (fileitem item : list) {// 获取表单的属性名字 string name = item.getfieldName (); // 如果获取的 表单信息是普通的 如果获取的 信息 if (item.isformfield ()) {// 获取用户具体输入的字符串 获取用户具体输入的字符串, 名字起得挺好, 因为表单提交过来的是 字符串类型的 字符串类型的 字符串类型的 value = item.getString (); request.setAttribute (이름, 값); } else {// 对传入的非 简单的字符串进行处理 简单的字符串进行处理, 比如说二进制的 图片 图片, 电影这些/** * 以下三步 以下三步, 主要获取 上传文件的名字 * // 获取路径名 문자열 value = item.getName (); // int start = value.lastIndexof ( "//"); // 截取 上传文件的 截取 截取, 加 1 是 去掉反斜杠 去掉反斜杠, 문자열 filename = value.substring (start+1); request.setAttribute (이름, filename); // 真正写到磁盘上 // 真正写到磁盘上 用 예외 捕捉 //item.write (새 파일 (path, filename)); // 第三方提供的 第三方提供的 // outputStream out = new FileOutputStream (새 파일 (path, filename)); inputStream in = item.getInputStream (); int 길이 = 0; 바이트 [] buf = 새로운 바이트 [1024]; System.out.println ( "获取上传文件的总 쿨 :"+item.getSize ()); // in.Read (buf) 每次读到的数据存放在 buf 数组中 while ((길 } in.close (); out.close (); }}} catch (fileUploadexception e) {e.printstacktrace (); } catch (예외 e) {e.printstacktrace (); } request.getRequestDisPatcher ( "filedEmo.jsp"). FORWAR (요청, 응답); } public void dopost (httpservletRequest 요청, httpservletResponse 응답) servletexception, ioexception {doget (요청, 응답); }}*** index.jsp *** <%@ page language = "java"contenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 Transitional // en" "http://www.w3.org/tr/tr/html4/loose.dtd"> html> html> http-quiv ="content-type "content ="text/html; charset = utf-8 "> </title> </head> <compor action ="empload ""empload " 메소드 = "post"> post : <input type = "text"name = "usename"> <br/> 上传图片 : <input type = "file"name = "file1"> <br/> 上传文件 : <input type = "file"name = "file2"> <br/> <input type = "제출"value = "提交"/> </body> </html>
*** filedemo.jsp *** <%@ page language = "java"import = "java.util.*"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <title>用户名称 : $ {requestScope.usename} <br /> 图片名称 : $ {requestScope.file1} <br /> 文件名称 : $ {requestScope.file2} <br /> <!-把上传的图片显示出来-> <img src = "upload1 /<%= (string) request.getAttribute ("file1 ")%>" /< /html> " /html>总结
以上所述是小编给大家介绍的 Java a a, 希望对大家有所帮助, 如果大家有任何疑问请给我留言, 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持! 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!