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.显示图片写法(上传图片自己写)。
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.显示图片写法(上传图片自己写)。
相关文章推荐
- 关于web项目中的图片上传、并在前端显示问题(tomcat中配置文件上传虚拟路径)
- apache与tomcat负载集群的方法与集群的文件同步问题和图片上传显示问题解决
- Flume 配置和读取tomcat文件到指定位置
- 修改Apache配置指定php配置文件php.ini的位置方法
- 关于CKEditor4.5.6的使用,自定义toolbar配置,上传图片案例(SpringMVC+MyBatis案例),自定义行高,去编辑器的中内容,将编辑器中内容设置到指定的位置等
- 「python自动化运维」之自动生成配置文件并上传到目标服务器指定的位置
- 关于CKEditor4.5.6的使用,自定义toolbar配置,上传图片案例(SpringMVC+MyBatis案例),自定义行高,去编辑器的中内容,将编辑器中内容设置到指定的位置等
- SpringMVC上传图片存到指定位置,并能够使用Tomcat访问
- iText7 生成 PDF 文件,解决各种操作系统中文问题,控制指定位置显示图片、文字、图文混排
- 「python自动化运维」之自动生成配置文件并上传到目标服务器指定的位置
- apache与tomcat负载集群的方法与集群的文件同步问题和图片上传显示问题解决
- 不刷新页面实现图片上传,并在指定位置显示
- ueditor上传图片时目录创建失败的问题解决方法,不用那么麻烦,其实修改php/config.json这个配置文件里面的路径就行!!
- 图片文件上传入SQL库及显示代码
- FCKeditor是使用非常广泛的HTML编辑器,本文从 ASP.NET 的使用场景对 FCKeditor 与 FCKeditor.NET 的配置、功能扩展(如自定义文件上传子目录、自定义文件名、上传图片的后期处理等)、以及安全性进行初步的阐述。
- 用asp.net 多文件上传 (并且图片即使显示)并隐藏上一个文件选择器
- 指定位置如果有图片显示图片,无图片显示广告的JS
- Struts2上传文件带中文名时.图片显示会出现%乱码解决
- 多文件(图片)上传-限制上传个数,修改上传
- 修改fckeditor使上传文件按用户id分目录存放,其上传图片加水印及缩略图