具体代码如下所示 :
*** Web.xml *** <? Xml Version = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http:/xmlschema-instance" xmlns = "http:/java.sja. 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 "versi =" 2.5 "> <servlet> <servlet-name> Fileupload </servlet-name> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> <servlet> cnclas> cn.action <servlet-name> Fileupload </servlet-name> <RURL-PATERS>/FILEUPLOAD </RURL-PATERS> </SERVLET-MAPPING> </web-app>
Paket 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.htp.httpservlet; impor javax.servlet javax.servlet.http.httpservletResponse; import org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.fileuploadexception; import orgache.adacomon org.apache.commons.fileupload.servlet.servletfileUpload;/** * * @Author Administrator * 文件上传 * 具体步骤 : * 1 )获得磁盘文件条目工厂 DiskfileItemFactory 要导包 * 2 )高水平的 )高水平的 属性 属性 属性 属性 属性 属性 属性 属性 属性 属性 属性 属性 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , SERVLETFILEUPLOAD UEDLOAD = SERVLETFILEUPLOAD baru (pabrik); * 目的是调用 Parserequest (Permintaan )方法 获得 FileItem 集合 Daftar , * * 5 )在 FileItem 对象中 获取信息 , 遍历 , 判断 表单提交过来的信息 是否是 普通文本信息 另做处理 * 6) * 第一种. 用第三方 提供的 item.write (file baru (path, nama file)); 直接写到磁盘上 * 第二种. 手动处理 * */Kelas publik Fileupload memperluas httpservlet {public void doGet (httpservletRequest, respons httpservletResponse) melempar servletException, ioException {request.setcharacterencoding ("UTF-8"); // 设置编码 // 获得磁盘文件条目工厂 DiskfileItemFactory factory = DiskfileItemFactory baru (); // 获取文件需要上传到的路径 string path = request.getRealPath ("/unggah1"); // string path = "c:/unggah1"; // 如果没以下两行设置的话 , 上传大的 文件 会占用 很多内存 , // 设置暂时存放的 存储室, 这个存储室 , 可以和 最终存储文件 的目录不同 的目录不同/** * 原理 它是先存到 , , 对应目录的硬盘上 , , , 按理来说 当上传一个文件时 , , , , , 第一个是以. // 设置 缓存的大小 , 当上传文件的容量超过该缓存时 , 直接放到 暂时存储室 factory.setsizethreshold (1024*1024); // 高水平的 API 文件上传处理 SERVLETFILEUPLOAD UPLOAD = SERVLETFILEUPLOAD baru (pabrik); coba {// 可以上传多个文件 Daftar <FILEItEM> Daftar = (Daftar <FILEItEM>) UEDLOAD.ParSeRequest (Request); untuk (item fileitem: daftar) {// 获取表单的属性名字 name string = item.getFieldName (); //如果获取的 表单信息是普通的 文本 信息 if(item.isFormField()){ //获取用户具体输入的字符串 ,名字起得挺好,因为表单提交过来的是 字符串类型的 String value = item.getString() ; request.setAttribute (nama, nilai); } else {// 对传入的非 简单的字符串进行处理 , 比如说二进制的 图片 , 电影这些/** * 以下三步 , 主要获取 上传文件的名字 */// 获取路径名 nilai string = item.getName (); // 索引到最后一个反斜杠 int start = value.lastIndexof ("//"); // 截取 上传文件的 字符串名字 , 加 1 是 去掉反斜杠 , string fileName = value.substring (mulai+1); request.setAttribute (nama, nama file); // 真正写到磁盘上 // 它抛出的异常 用 Pengecualian 捕捉 //item.write (file baru (path, nama file)); // 第三方提供的 // 手动写的 outputStream out = FileOutputStream baru (file baru (path, fileName)); InputStream in = item.getInputStream (); panjang int = 0; byte [] buf = byte baru [1024]; System.out.println ("获取上传文件的总获取上传文件的总 的容量 :"+item.getSize ()); // in.read (buf) 每次读到的数据存放在 buf 数组中 while ((length = in.read (buf))! = -1) {// 在 buf 数组中 取出数据 写到 (输出流)磁盘上 out.write (buf, 0, panjang); } in.close (); out.close (); }}} catch (fileuploadException e) {e.printstacktrace (); } catch (Exception e) {E.PrintStackTrace (); } request.getRequestDispatcher ("FileDeMo.jsp"). Forward (Request, Response); } public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {doGet (permintaan, respons); }}*** index.jsp *** <%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "UTF-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; formal = form = "form-8"> <title> 上传入口 </title> </head/html; body = "form =" "> <title> 上传入口 </title> </head/homl;" BODY = "BODED =" "> <title> 上传入口 </title> </head/head <body =" BODY = "BODED"> <title> 上传入口 </title> </head/"forms =" BODED = "BODEAD"> <title> 上传入口 </title> </head/"forms =" BOWED = "" "" Method = "Post"> 用户名称: <input type = "text" name = "useName"> <br/> 上传图片: <input type = "file" name = "file1"> <br/> 上传文件: <input type = "file" name = "file2"> <br/> <input type = "kirim" value = "提交"/</Form> </Form>
*** FileDeMo.jsp *** <%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en"> <html> <head> </titer> </tite </tid/en "> <html> <head> <上传文件图片案列 titer> </tite> </en"> <html> <head> <上传文件图片案列 titor> </en "> <html> <html> </tite> </titer> </en"用户名称: $ {requestscope.usename} <br /> 图片名称: $ {requestscope.file1} <br /> 文件名称: $ {requestScope.file2} <br /> <!-把上传的图片显示出来-> <img src = "unggah1 /<%= (string) request.getattribute (" file1 ") < /unggah /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%= /<%=总结
以上所述是小编给大家介绍的 Java 实现上传文件图片到指定服务器目录 , 希望对大家有所帮助 , 如果大家有任何疑问请给我留言 , 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!