您的位置:首页 > 运维架构 > Tomcat

tomcat图片上传指定位置并显示(修改配置文件)

2017-02-03 00:00 891 查看
1.修改tomcat配置文件



2.在其中添加要上传的位置

1)



2)


3.写上传java代码,当然网上也有,下面是我的代码。

package com.servlet;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
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.FileUploadBase;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.bean.Product;
import com.service.ProductService;

public class UploadServlet2 extends HttpServlet {
Product p=new Product();
ProductService ps=new ProductService();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

//响应中文乱码处理
response.setContentType("text/html;charset=UTF-8");

//创建工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//使用工厂对象作为参数创建一个ServletFileUplaod对象
ServletFileUpload fileUpload = new ServletFileUpload(factory);
//解决文件名中文乱码
fileUpload.setHeaderEncoding("UTF-8");
//设置上传的单个文件的大小上限:1024KB=1MB
fileUpload.setFileSizeMax(1024*1024);
try {
//使用fileUpload对象解析request请求体中的内容,得到FileItem链表
List<FileItem> list = fileUpload.parseRequest(request);
//遍历list得到每一个FileItem(也就是每一个表单项)
for(FileItem fileItem:list){
//如果当前表单项为普通文本字段
if(fileItem.isFormField()){//普通文本字段
//获取表单项的字段名称
String fieldName = fileItem.getFieldName();
if(fieldName.equals("id")){
p.setId(fileItem.getString("UTF-8"));
}
if(fieldName.equals("name")){
p.setName(fileItem.getString("UTF-8"));
}
if(fieldName.equals("price")){
String price1=(fileItem.getString("UTF-8"));
double price2=Double.parseDouble(price1);
p.setPrice(price2);
}
if(fieldName.equals("category")){
p.setCategory(fileItem.getString("UTF-8"));
}
if(fieldName.equals("pnum")){
int pnum= Integer.parseInt(fileItem.getString("UTF-8"));
p.setPnum(pnum);
}
if(fieldName.equals("description")){
p.setDescription(fileItem.getString("UTF-8"));
}

}else{//上传文件字段
//获取文件名
String name = fileItem.getName();
//如果名字为空,就是没有指定上传文件
if(name==null || name.isEmpty()){
continue;
}
//获取真实的文件路径,其实就是服务器上的一个目录,这个目录必须存在
String savepath = "D:/pic";
//为了保证上传的文件名是唯一的,可以使用UUID
String uuid = UUID.randomUUID().toString();
//重新构建的文件名为:uuid_原始文件名
String filename = uuid+"_"+name;

//通过文件上传路径和文件名创建File对象
File file = new File(savepath, filename);
//将内容写到文件中去,上传完成
fileItem.write(file);
p.setImgurl(filename);
//给客户端输出提示
response.getWriter().print("上传文件名:"+name+"<br>");
response.getWriter().print("上传文件大小:"+fileItem.getSize()+"<br>");
response.getWriter().print("上传文件类型:"+fileItem.getContentType());

}
}
ps.editId(p);
response.getWriter().print("商品信息修改成功......");
response.setHeader("Refresh", "1;url=/T1/admin/shoppingA.jsp");
} catch (Exception e) {
//判断异常的类型
if(e instanceof FileUploadBase.FileSizeLimitExceededException){
//将错误信息存放到request域中
request.setAttribute("msg", "上传失败,文件大小超过1MB");
//请求转发到upload.jsp
request.getRequestDispatcher("/upload.jsp").forward(request, response);
return;
}
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
注意:其中




4.显示图片写法(上传图片自己写)。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐