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);
}
}