图片上传问题 我看了下上传到了\Tomcat 6.0\webapps\test\shop\images 在本地项目却不显示,这个该怎么调呢,如果正式部署之后应该图片上传到服务器本地吧 请指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主看这里/** * Servlet implementation class AddCssServlet */@WebServlet(name = "UploadServlet", urlPatterns = { "/upload" })public class UploadServletextends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public UploadServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); // 设置上传文件保持路径 String filepath = this.getServletContext().getRealPath("/upload"); System.out.println(filepath); File uploadDir = new File(filepath); // 如果该文件夹不存在则创建 if (!uploadDir.exists()) { uploadDir.mkdirs(); } // 获取服务器默认的临时文件夹 String temp = System.getProperty("java.io.tmpdir"); File tempDir = new File(temp); // 如果该文件夹不存在,则创建 if (!tempDir.exists()) { tempDir.mkdirs(); } // 创建文件项目工厂对象 DiskFileItemFactory factory = new DiskFileItemFactory(); // 设置临时文件夹 factory.setRepository(new File(temp)); // 设置缓冲区大小为 1M factory.setSizeThreshold(1024 * 1024); ServletFileUpload serveltFileUpload = new ServletFileUpload(factory); // 解析文件上传请求,解析结果放在 List中 try { List<FileItem> list = serveltFileUpload.parseRequest(request); for (FileItem item : list) { // 判断某项是否是普通的表单类型。 if (item.isFormField()) { //该表单项是普通类型 // 忽略简单form字段而不是上传域的文件域 continue; } else { // 否则文件域 // 获取上传文件名 String fileName = item.getName(); // 此时的文件名包含了完整的路径,得注意加工一下 System.out.println("完整的文件名:" + fileName); int index = fileName.lastIndexOf("\\"); fileName = fileName.substring(index + 1, fileName.length()); // 创建文件输入流 InputStream in = item.getInputStream(); // 创建一个指向 File 对象所表示的文件中写入数据的文件输出流 FileOutputStream outs = new FileOutputStream(new File( filepath, fileName)); int len = 0; // 创建字节数组 ,大小位 1024字节 byte[] buffer = new byte[1024]; out.println("上传文件名称:" + fileName + "<br/>"); out.println("上传文件大小:" + item.getSize() / 1024 + " KB(" + item.getSize() + " 字节)<br/>"); while ((len = in.read(buffer)) != -1) { // 字节数组从偏移量 0 到len 个字节写入文件输出流 outs.write(buffer, 0, len); } // 关闭输入流 in.close(); // 关闭输出流 outs.close(); } } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }}博客里有http://blog.csdn.net/u012895467/article/details/17393823 上传的文件的将存储在你的服务器的临时目录下。所以你上传的图片是存在了Tomcat目录下,需要更改项目部署时的路径。在Eclipse中集成好Tomcat之后,发布我们的项目,然后菜单栏选择Window-->show view-->services,查看服务面板,双击Tomcat进入配置界面修改Server Locations。 默认选项为:Use workspace metadata(dose not modify Tomcat installation) 修改选项为:Use Tomcat installation(takes control of Tomcat installation)更改配置后就变成你的项目路径了若修改配置时显示灰色无法更改,此时我们需要右击选择clean将Tomcat下的所有项目一处方可设置。Eclipse每次部署发布项目时会将上一次部署的所有内容删除,然后再重新部署。所以,若上传文件时保存路径指向的是Tomcat中部署的文件内,每次重新部署发布就会将之前上传的文件全部清空。http://blog.csdn.net/u012895467/article/details/17393823 JSP Ajax Mysql 实现页面内传值 求救:jsp页面错误 关于引入子页面的问题 为何出错?怎么解决?? tomcat与iis整合后访问题,请指点 菜鸟求助:求伪造一个网站referer的源码 网站的状态? 简单问题! 小弟不知,向大家请教! Nginx + memcache + Spring + Hibernate + 多Tomcat集群后报懒加载错误的问题 apache + jsp 我把web工程部署到tomcat上却出现404错误 tomcat中 java VM内存如何设置?
* Servlet implementation class AddCssServlet
*/
@WebServlet(name = "UploadServlet", urlPatterns = { "/upload" })
public class UploadServletextends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public UploadServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html"); PrintWriter out = response.getWriter(); // 设置上传文件保持路径
String filepath = this.getServletContext().getRealPath("/upload");
System.out.println(filepath);
File uploadDir = new File(filepath); // 如果该文件夹不存在则创建
if (!uploadDir.exists()) {
uploadDir.mkdirs();
} // 获取服务器默认的临时文件夹
String temp = System.getProperty("java.io.tmpdir");
File tempDir = new File(temp); // 如果该文件夹不存在,则创建
if (!tempDir.exists()) {
tempDir.mkdirs();
}
// 创建文件项目工厂对象
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置临时文件夹
factory.setRepository(new File(temp));
// 设置缓冲区大小为 1M
factory.setSizeThreshold(1024 * 1024);
ServletFileUpload serveltFileUpload = new ServletFileUpload(factory); // 解析文件上传请求,解析结果放在 List中
try {
List<FileItem> list = serveltFileUpload.parseRequest(request);
for (FileItem item : list) {
// 判断某项是否是普通的表单类型。
if (item.isFormField()) { //该表单项是普通类型
// 忽略简单form字段而不是上传域的文件域
continue;
} else { // 否则文件域
// 获取上传文件名
String fileName = item.getName();
// 此时的文件名包含了完整的路径,得注意加工一下
System.out.println("完整的文件名:" + fileName);
int index = fileName.lastIndexOf("\\");
fileName = fileName.substring(index + 1, fileName.length());
// 创建文件输入流
InputStream in = item.getInputStream();
// 创建一个指向 File 对象所表示的文件中写入数据的文件输出流
FileOutputStream outs = new FileOutputStream(new File(
filepath, fileName));
int len = 0;
// 创建字节数组 ,大小位 1024字节
byte[] buffer = new byte[1024];
out.println("上传文件名称:" + fileName + "<br/>");
out.println("上传文件大小:" + item.getSize() / 1024 + " KB("
+ item.getSize() + " 字节)<br/>");
while ((len = in.read(buffer)) != -1) {
// 字节数组从偏移量 0 到len 个字节写入文件输出流
outs.write(buffer, 0, len);
}
// 关闭输入流
in.close();
// 关闭输出流
outs.close();
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally { }
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}}博客里有http://blog.csdn.net/u012895467/article/details/17393823
上传的文件的将存储在你的服务器的临时目录下。所以你上传的图片是存在了Tomcat目录下,需要更改项目部署时的路径。在Eclipse中集成好Tomcat之后,发布我们的项目,然后菜单栏选择Window-->show view-->services,查看服务面板,双击Tomcat进入配置界面修改Server Locations。
默认选项为:Use workspace metadata(dose not modify Tomcat installation)
修改选项为:Use Tomcat installation(takes control of Tomcat installation)更改配置后就变成你的项目路径了若修改配置时显示灰色无法更改,此时我们需要右击选择clean将Tomcat下的所有项目一处方可设置。
Eclipse每次部署发布项目时会将上一次部署的所有内容删除,然后再重新部署。所以,若上传文件时保存路径指向的是Tomcat中部署的文件内,每次重新部署发布就会将之前上传的文件全部清空。http://blog.csdn.net/u012895467/article/details/17393823