具体代码如下所示:
*** web.xml *** <?xml版本=“ 1.0” encoding =“ utf-8”?> <web-app xmlns:xsi =“ http:///www.org/2001/xmlschema-2001/xmlschema-chema-indschema-ingstance” xmlns =“ xmlns =” XMLNS:Web =“ http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” xsi:schemalocation =“ http://java.sun.com/xun.com/xml/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“ id =“ webapp_id”版本=“ 2.5”> <servlet> <servlet-name> fileupload </servlet-name> fileupllet </servlet-name> <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.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.httpservletResponse; import org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.fileupload.fileuploadexception; import org.apache.compache.commons.fileupload.disk.diskfilemfactory importigemfactory; org.apache.commons.fileupload.servlet.servletfileupload;/** * * * @author管理员 *文件上传 *具体步骤: * 1)获得磁盘文件条目工厂diskfileitemfactory要导包 * 2)(2)(2))请求获取请求获取获取获取4)高水平的api文件上传处理servletFileUploadupload = new ServletFileUpload(Factory); * parserequest(请求)方法方法方法方法fileitem list list, * 5)fileitem对象中对象中,遍历 用第三方用第三方项目。write(new File(path,filename)); 直接写到磁盘上 *第二种。 手动处理 * */公共类FileUpload扩展了httpservlet {public void doget(httpservletrequest request,httpservletResponse响应)抛出servletexception,ioexception {request.set.setcharacterencterenceNcecting(set.setCharActerEncterEncoding(“ utf-8”); //设置编码//获得磁盘文件条目工厂diskFileItemFactory Factory = new DiskFileItemFactory(); //获取文件需要上传到的路径字符串路径= request.getRealPath(“/upload1”); // string path =“ c:/upload1”; //如果没以下两行设置的话,// // //设置暂时存放的,这个存储室,这个存储室,**/** ** *原理原理原理它是先存到, *然后在真正写到, *按理来说, *按理来说,其实是上传了两份,其实是上传了两份,.tem。 //设置,当上传文件的容量超过该缓存时,直接放到,工厂。 //高水平的api文件上传处理servletFileUploadupload = new ServletFileUpload(Factory);尝试{//可以上传多个文件列表<FileTem> list =(List <FileItem>)upload.parserequest(request); for(fileItem item:list){//获取表单的属性名字字符串名称= item.getFieldName(); //如果获取的如果获取的文本文本if(item.isformfield()){//获取用户具体输入的字符串,,名字起得挺好,因为表单提交过来的是因为表单提交过来的是因为表单提交过来的是字符串类型的字符串类型的字符串类型的字符串类型的因为表单提交过来的是因为表单提交过来的是request.setAttribute(name,value); } else {//对传入的非对传入的非,比如说二进制的,电影这些/** *以下三步,主要获取主要获取,//////////////////////////////////////////////////////-- //索引到最后一个反斜杠int start = value.lastIndexof(“ //”); //截取截取上传文件的,加1是,字符串fileName = value.substring(start+1); request.setAttribute(名称,文件名); //真正写到磁盘上//它抛出的异常用异常捕捉//item.write(new File(path,filename)); //第三方提供的//手动写的// upputeStream out = new FileOutputStream(new File(new File(path,fileName))); inputStream in = item.getInputStream(); int长度= 0;字节[] buf = new Byte [1024]; system.out.println(“获取上传文件的总共:”+item.getSize()); // in.Read(buf)每次读到的数据存放在buf数组中while((length = in.Read(buf))!= -1){// buf buf buf数组中数组中数组中写到写到) } in.close(); out.close(); }}} catch(fileuploadexception e){e.printstacktrace(); } catch(异常E){e.printstacktrace(); } request.getRequestDisPatcher(“ filedemo.jsp”)。export(请求,响应); } public void dopost(httpservletrequest request,httpservletresponse响应)抛出了servletexception,ioexception {doget(request,wendesp); }}}*** index.jsp *** <%@ page语言=“ java” contentType =“ text/html; charset; charset = utf-8“ pageencoding =“ utf-8”%> <!docdype html public' - // w3c // w3c // ” http://www.w3.org/tr/html4/loose.dtd"> <html> <head> enctype =“倍增/form-data”方法=“ post”>用户名称:<input type =“ text” name =“ usEname”> <br/> <br/>上传图片:<input type type =“ file” name =“ file1”> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
*** filedemo.jsp *** <%@ page语言=“ java” import =“ java.util。用户名称:$ {requestScope.usename} <br />图片名称:$ {requestScope.file1} <br />文件名称:$ {requestScope.file2} <br /> <! - > <img src =“ upload1 /<%=(总结
以上所述是小编给大家介绍的java实现上传文件图片到指定服务器目录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!