目录
一、场景:展示向服务器添加商品,商品信息包括图片,以及其他信息
一、场景:展示向服务器添加商品,商品信息包括图片,以及其他信息
//添加商品
protected void addProduct(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
JsonModel jm=new JsonModel();//传回前台的数据放在这个类 data,code,msg
DbHelper db=new DbHelper();//封装的一些数据库操作
//1、获取数据
//2、添加数据至数据库,文件保存在upload,数据库存文件路径
//3、传回信息到前台
}
1,获取数据
//首先拿到流信息 它返回的是一个part对象,这是前端过来的文件
Part uploadFile = request.getPart("uploadFile");//图片data,包括文件名,数据等等
//取前端过来的商品信息,一些商品信息
product newProduct=super.parseRequestToT(request,product.class);
double v = db.Selectaggreation("select max(pid)+1 from product"); //获取新pid编号
newProduct.setPid((int) v);
List<Map<String, Object>> list = db.Select("select csid from categorysecond where csname=?", newProduct.getCsname());
newProduct.setCsid( (Integer) list.get(0).get("csid") ); //获取csid编号
//tomcate路径,这需要你先配置CATALINA_HOME这个变量,方法在文章末尾,以及建一个文件保存的文件夹upload
String CATALINA_HOME =System.getenv("CATALINA_HOME")+File.separator+"webapps"+File.separator;
//图片保存目录 tomcat下的 webapps/upload/
String filePath = CATALINA_HOME+"upload"+File.separator;
//生成新的文件名 pid.xxx文件
String fileName = uploadFile.getSubmittedFileName();
fileName=newProduct.getPid()+fileName.substring(fileName.lastIndexOf("."));
System.out.println(fileName);
//设置新商品图片url
String urlPath = "../upload" + File.separator+ fileName;
urlPath = urlPath.replaceAll("\\\\", "/");
System.out.println(urlPath);
newProduct.setImage(urlPath);
2.添加数据
int result = db.daUpdate("insert into product values(?,?,?,?,?,?,?,?,?)"
, newProduct.getPid(), newProduct.getPname(), newProduct.getMarket_price()
, newProduct.getShop_price(), newProduct.getImage(), newProduct.getPdesc()
, newProduct.getIs_hot(), new Timestamp(System.currentTimeMillis()), newProduct.getCsid());
if(result==1){
File saveDirFile = new File(filePath);
if (!saveDirFile.exists()) {
saveDirFile.mkdirs();
}
//保存图片至 filePath下
uploadFile.write(filePath + fileName);
jm.setCode(1);
jm.setData("添加商品成功!");
3.传回数据到前台
略
二、附:配置CATALINA_HOME
vi /etc/profile
按‘i’进入insert模式,在最后加入
export CATALINA_HOME=你的tomcat路径
如:/usr/local/tomcat/apache-tomcat-9.0.68
按ESC退出insert模式,按‘:wq’,保存退出
使配置生效
source /etc/profile
新建一个在webapps下新建upload文件夹
三、效果展示
可以看到:pid为3的这条数据图片为我本地的图片