前几步同文件上传1
package czb.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
publicclassUploadServlet2 extends HttpServlet {
publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
request.setCharacterEncoding("UTF-8");
// 1.声明临时目录,不设置缓冲大小默认为10K
DiskFileItemFactorydisk = newDiskFileItemFactory();
// 2.设置临时目录
disk.setRepository(new File("f:/tm"));
// 3.声明解析request的核心类
ServletFileUploadsfu = newServletFileUpload(disk);
// 4.解析request,每一个fileitem就是一个文件对象
try {
List<FileItem>list = sfu.parseRequest(request);
// 5.获取第一个文件
FileItemfile = list.get(0);
// 如果是图片,image/jpeg;image/png;image/jpg;image/gif
if(!file.getContentType().startsWith("image/")) {
response.sendError(405,"不支持文件类型。。。");
return;
}
// 6.获取文件保存目录
Stringpath = getServletContext().getRealPath("/up");
// 7.获取文件名
StringfileName = file.getName();
// 只获取名称
fileName= fileName.substring(fileName.lastIndexOf("\\") + 1);
// 8.获取IO
InputStreamin = file.getInputStream();
// 9.获取输出流
OutputStreamout = newFileOutputStream(path + "/" + fileName);
byte[] b = newbyte[1024];
int len = 0;
while ((len = in.read(b)) !=-1) {
out.write(b,0, len);
}
out.close();
// 删除临时文件
file.delete();
// 页面上显示图片
response.setContentType("text/html;charset=UTF-8");
Stringimg = "<img src='up/" + fileName
+"' width=800 height=1000/>";
response.getWriter().print(img);
}catch(Exception e) {
e.printStackTrace();
}
}
}