各位高分求教 java图片上传 上传好后能看到图片还能删除图片
如何实现... 高分求教
如何实现... 高分求教
解决方案 »
- 一道关于百度搜索的笔试题,急求答案,多谢!
- properties文件读出的路径问题
- 求解:严重: action: null org.springframework.beans.factory.BeanCreationException
- hibernate+struts的错误,希望能帮我找到问题的原因。谢谢
- JAVA add函数问题
- SSH开发输出少内容,发现是插入数据的问题,看看问题在哪儿?
- 如何用hibernate查出最后或最大的一条记录
- 哪种 Spring 的 JAR 包适合我们
- MySQL出现了问题!请帮忙解决...
- 为何用j2ee的deploytool部署生成sql的时候出错
- 菜鸟问题。。不知哪不对!
- 页面打开问题!
组件 commons-fileupload
下载 http://jakarta.apache.org/commons/fileupload/
下载后解压zip包,将commons-fileupload-1.2.1jar,commons-io-1.3.2.jar复制到tomcat的webapps你的webappWEB-INFlib下用该组件可实现一次上传一个或多个文件,并可限制文件大小。<%@ page contentType="text/html;charset=UTF-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>文件上传</title></head><body> 文件上传 <hr /> <form action="uploadjsp" method="post" enctype="multipart/form-data"> <input type="file" name="myimage"> <input type="submit" name="Submit" value="上传" /> </form></body></html>
import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.util.Iterator;import java.util.List; import javax.servlet.RequestDispatcher;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.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload; public class Upload extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ doPost(request,response); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ PrintWriter out = response.getWriter(); //设置字符编码为utf-8 response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); //设置上传文件最大值 final long MAXSIZE = 1024*1024*30; // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload DiskFileItemFactory dfif = new DiskFileItemFactory(); // 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘 dfif.setSizeThreshold(4096); //设置存放临时文件的目录,web根目录下的ImagesTemp目录 String savePath = getServletContext().getRealPath("")+"\\ImagesTemp"; dfif.setRepository(new File(savePath)); // 用以上工厂实例化上传组件 ServletFileUpload sfu = new ServletFileUpload(dfif); sfu.setSizeMax(MAXSIZE); List fileList = null; try { fileList = sfu.parseRequest(request); } catch (FileUploadException e) { e.printStackTrace(); } //得到所有上传的文件 for(Iterator it = fileList.iterator();it.hasNext();){ FileItem fileItem = (FileItem)it.next(); if (fileItem == null || fileItem.isFormField()) { continue; } String path = fileItem.getName(); long size = fileItem.getSize(); // 得到去除路径的文件名 String t_name = path.substring(path.lastIndexOf("\\") + 1); // 得到文件的扩展名(无扩展名时将得到全名) String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1); // 根据系统时间生成上传后保存的文件名 String prefix = String.valueOf(System.currentTimeMillis()); // 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下 String u_name = savePath +"\\"+ prefix + "." + t_ext; // 保存文件到 try { fileItem.write(new File(u_name)); String imgsrc = "ImagesTemp\\"+ prefix + "." + t_ext; RequestDispatcher requestDispatcher = request.getRequestDispatcher("success.jsp"); request.setAttribute("imgpath", imgsrc); requestDispatcher.forward(request, response); } catch (Exception e) { e.printStackTrace(); } } out.flush(); out.close(); }}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> fileUpload </title>
<meta name="author" content="Yeeku.H.Lee" />
<meta name="website" content="http://www.crazyit.org" />
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
</head>
<body>
<form enctype="multipart/form-data"
method="post" action="b.jsp">
上传文件: <input type="file" name="file" /> <br>
请求参数 <input type="text" name="wawa" /> <br>
<input type="submit" value="提交" />
</form>
</body>
</html>
b.jsp->------------------------------------------------------------------ <%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.io.*"%>
<%
//取得HttpServletRequest的InputStream输入流
InputStream is = request.getInputStream();
//以InputStream输入流为基础,建立一个BufferedReader对象
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String buffer = null;
//循环读取请求内容的每一行内容
while( (buffer = br.readLine()) != null)
{ if(buffer.endsWith("--") && buffer
.startsWith("-----------------------------"))
{
break;
} if(buffer.startsWith("-----------------------------"))
{ if (br.readLine().indexOf("filename") > 1)
{
//跳过两行,开始处理上传的文件内容
br.readLine();
br.readLine();
//以系统时间为文件名,创建一个新文件
File file = new File(request.getRealPath("/")
+ System.currentTimeMillis());
//创建一个文件输出流
PrintStream ps = new PrintStream(new FileOutputStream(file));
String content = null;
//接着开始读取文件内容
while( (content = br.readLine()) != null)
{ if(content.startsWith("-----------------------------"))
{ break;
}
//将读到的内容输出到文件中
ps.println(content);
} ps.flush();
ps.close();
}
}
}
br.close();
%>
上传有很多方法,上面的代码是用纯java进行上传的。有关上传你可以看下smartupload上传方式,还有struts2的上传。这两个上传方式简单,但它们的实现方式都是基于上面的代码。
要想在另个页面看到图片使用<img src="路径">
http://www.diybl.com/course/4_webprogram/jsp/jsp_js/2008410/108745.html
File f=new File(路径+文件名);
判断文件是否存在
if (f.exists()){
f.delete();
}
imgs为文件夹
最好放在
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\你的站点\imgs