具体代码如下所示:
*** web.xml *** <? xml version = "1.0" การเข้ารหัส = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http:/java.sun xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi: schemalocation = "http://java.sun.com/xml/ns/javaeee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "id =" webapp_id "เวอร์ชัน =" 2.5 "> <servlet> <servlet-name> fileupload </servlet-name> <servlet-name> fileupload </servlet-name> <url-pattern>/fileupload </url-pattern> </servlet-mapping> </eb-app>
แพ็คเกจ cn.com.action; นำเข้า java.io.file; นำเข้า java.io.*; นำเข้า java.io.ioexception; นำเข้า java.util.list; นำเข้า javax.servlet.servletexception; นำเข้า Javax.servlet.http.httpservlet; javax.servlet.http.httpservletResponse; นำเข้า org.apache.commons.fileupload.fileitem; นำเข้า org.apache.commons.fileupload.fileuploadexception; org.apache.commons.fileupload.servlet.servletfileupload;/** * * @author ผู้ดูแลระบบ * 文件上传 *:: * 1) 获得磁盘文件条目工厂获得磁盘文件条目工厂对象设置一些属性属性,,,,,,,,,,,,,,,,,,,,,,, 4) 高水平的 API 文件上传处理 ServletFilePilePload Upload = ใหม่ servletFileUpload (โรงงาน); * 目的是调用 parserequest (((方法获得获得获得获得获得获得集合,,,,,,,,,,,,,,,,,,,, 用第三方提供的 item.write (ไฟล์ใหม่ (เส้นทาง, ชื่อไฟล์)); 直接写到磁盘上 * 第二种 手动处理 * */คลาสสาธารณะ FilePload ขยาย HTTPSERVLET {โมฆะสาธารณะ DOGET (HTTPSERVLETREQUEST Request, การตอบสนอง httpservletResponse) โยน servletexception, iOexception {request.SetchAracterencoding ("UTF-8"); // 设置编码 // 获得磁盘文件条目工厂 diskfileitemfactory Factory = ใหม่ diskfileitemfactory (); // 获取文件需要上传到的路径 path String = request.getRealPath ("/upload1"); // path String = "C:/upload1"; // 如果没以下两行设置的话, 上传大的会占用,, // 设置暂时存放的存储室这个存储室, 可以和的目录不同的目录不同的目录不同可以和的目录不同的目录不同其实是上传了两份它是先存到,,,, 然后在真正写到然后在真正写到, 然后在真正写到,, // 设置, 当上传文件的容量超过该缓存时, 直接放到暂时存储室โรงงาน Setsizethreshold (1024*1024); // 高水平的 api 文件上传处理 servletfileupload upload = ใหม่ servletFileUpload (โรงงาน); ลอง {// 可以上传多个文件 list <fileitem> list = (list <fileitem>) upload.parserequest (คำขอ); สำหรับ (fileItem item: list) {// 获取表单的属性名字 string name = item.getFieldName (); // 如果获取的表单信息是普通的信息信息信息信息文本信息文本文本文本文本文本文本文本获取用户具体输入的字符串名字起得挺好, 因为表单提交过来的是因为表单提交过来的是ค่าสตริง = item.getString (); request.setAttribute (ชื่อ, ค่า); } else {// 对传入的非,, 图片, 电影这些/** * 以下三步, 主要获取上传文件的名字 */// 获取路径名ค่าสตริง = item.getName (); // 索引到最后一个反斜杠 int start = value.lastindexof ("//"); // 截取字符串名字, 加 1 是,,,,,,,,, filename = value.substring (start+1); request.setAttribute (ชื่อ, ชื่อไฟล์); // 真正写到磁盘上 // 它抛出的异常ข้อยกเว้น捕捉 //item.write (ไฟล์ใหม่ (พา ธ , ชื่อไฟล์)); // 第三方提供的 // 手动写的 outputStream out = ใหม่ fileOutputStream (ไฟล์ใหม่ (พา ธ ชื่อไฟล์)); inputStream ใน = item.getInputStream (); ความยาว int = 0; ไบต์ [] buf = ไบต์ใหม่ [1024]; System.out.println ("获取上传文件的总获取上传文件的总::"+item.getSize ()); // in.read (buf) 每次读到的数据存放在 buf 数组中ในขณะที่ ((length = in.read (buf))! = -1) {// 在 buf 数组中写到))))))))))))))))) } in.close (); out.close (); }}} catch (fileuploadexception e) {e.printstacktrace (); } catch (exception e) {e.printstacktrace (); } request.getRequestDispatcher ("filedemo.jsp"). forward (คำขอ, การตอบกลับ); } โมฆะสาธารณะ dopost (คำขอ httpservletrequest, httpservletResponse การตอบสนอง) พ่น servletexception, ioexception {doget (คำขอ, การตอบสนอง); -*** index.jsp *** <%@ page language = "java" contentType = "ข้อความ/html; charset = utf-8" pageencoding = "utf-8"%> <! "http://www.w3.org/tr/html4/loose.dtd"><html> <head> <meta http-equiv =" content-type "content =" text/html; charset = utf-8 " enctype = "multipart/form-data" method = "post"> 用户名称: <input type = "text" name = "usename"> <br/> 上传图片: <input type = "file" name = "file1"> <br/> 上传文件: <อินพุต type = "ไฟล์" file2 "> <br/>
*** filedemo.jsp *** <%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <! doctype html สาธารณะ "-// w3c // dtd html 4.01 การเปลี่ยนผ่าน //用户名称: $ {requestscope.usename} <br /> 图片名称: $ {requestscope.file1} <br /> 文件名称: $ {requestscope.file2} <br /> <!-把上传的图片显示出来-> <img src = "อัปโหลด 1 /<%= (สตริง)总结
以上所述是小编给大家介绍的 Java 实现上传文件图片到指定服务器目录, 希望对大家有所帮助, 如果大家有任何疑问请给我留言, 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!