private File file; private String fileFileName; private String picture; //都有getter 和 setter InputStream is = new FileInputStream(file); //引入一个IO流的输入流 String root = ServletActionContext.getRequest() .getRealPath("/bookpicture"); //通过REQUEST来得到相对地址,并在后面加上/bookpicture File f = new File(root, this.getFileFileName()); //定义一个FILE文件,第一个参数是文件的路径,第二个是文件的名字 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) { //如果从制定文件中读取到的信息为结束就继续循环 os.write(buffer, 0, len); //将文件读出的内容写入到指定的文件中 }
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的实例 //通过JspFactory的实例的getPageContext方法得到pageConext的实例 JspFactory jf = null; //得到JspFactory的实例 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 { //实例化SmartUpload SmartUpload mySmartUpload=new SmartUpload(); //初始化SmartUpload的实例,需要PageContext的实例 mySmartUpload.initialize(pageContext); //设定最大上传的字节数,其实可以不进行设定,表示上传的文件没有大小限制 //mySmartUpload.setTotalMaxFileSize(10000000); mySmartUpload.upload(); //下面是单文件上传 //上传的文件以com.jspsmart.upload.File 代表,如果文件名称重复,则进行覆盖 com.jspsmart.upload.File file=mySmartUpload.getFiles().getFile(0); String upLoadFileName=file.getFileName(); //调用com.jspsmart.upload.File实例的saveas的方法保存文件,此时的文件名即是 //保存到服务器上的文件名 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); } }