private File file; private String fileFileName; private String picture; //都有g(shù)etter 和 setter InputStream is = new FileInputStream(file); //引入一個IO流的輸入流 String root = ServletActionContext.getRequest() .getRealPath("/bookpicture"); //通過REQUEST來得到相對地址,并在后面加上/bookpicture File f = new File(root, this.getFileFileName()); //定義一個FILE文件,第一個參數(shù)是文件的路徑,第二個是文件的名字 picture="."+"\\"+"bookpicture"+"\\"+this.getFileFileName(); //為PICTURE字符串賦值,/地址/文件名 System.out.println ("======picture====="+picture); //從控制臺輸出Picture OutputStream os = new FileOutputStream(f); //第一個文件的輸出流 byte[] buffer = new byte[1024]; //定義一個bufer的字符串,長度為1024 int len = 0; while ((len = is.read(buffer)) > 0) { //如果從制定文件中讀取到的信息為結(jié)束就繼續(xù)循環(huán) os.write(buffer, 0, len); //將文件讀出的內(nèi)容寫入到指定的文件中 } package com; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import com.jspsmart.upload.*; public class uploadfiles extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { //使用了一個第三方的組件,存放在web-inf/lib下 response.setContentType("text/html;charset=GB2312"); //由于SmartUpload的初始化方法需要pageContext,所以我們在servlet中得到他 //為了得到pageConext要首先得到JspFactory的實(shí)例 //通過JspFactory的實(shí)例的getPageContext方法得到pageConext的實(shí)例 JspFactory jf = null; //得到JspFactory的實(shí)例 jf=JspFactory.getDefaultFactory(); /* getPageContext(Servlet servlet, ServletRequest request, ServletResponse response, java.lang.String errorPageURL, boolean needsSession, int buffer, boolean autoflush) */ PageContext pageContext=jf.getPageContext(this,request,response,null,true,8192,true); try { //實(shí)例化SmartUpload SmartUpload mySmartUpload=new SmartUpload(); //初始化SmartUpload的實(shí)例,需要PageContext的實(shí)例 mySmartUpload.initialize(pageContext); //設(shè)定最大上傳的字節(jié)數(shù),其實(shí)可以不進(jìn)行設(shè)定,表示上傳的文件沒有大小限制 //mySmartUpload.setTotalMaxFileSize(10000000); mySmartUpload.upload(); //下面是單文件上傳 //上傳的文件以com.jspsmart.upload.File 代表,如果文件名稱重復(fù),則進(jìn)行覆蓋 com.jspsmart.upload.File file=mySmartUpload.getFiles().getFile(0); String upLoadFileName=file.getFileName(); //調(diào)用com.jspsmart.upload.File實(shí)例的saveas的方法保存文件,此時的文件名即是 //保存到服務(wù)器上的文件名 file.saveAs("/upload/"+upLoadFileName); Request req = Text t = .....; t.setUpload(upLoadFileName); t.set.....(req); } catch(SmartUploadException e) { System.out.println(e.getMessage()); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { doGet(request,response); } } |
|