在很多的场景下,我们都需要上传图片,比如在朋友圈上传自己喜欢的照片,为自己的账号设置一个精美的头像,为自己商店上传货物照片。这些都需要我们将图片进行上传并将图片保存在服务器上将图片的地址存放在mysql数据库中。

servlet文件中获取上传的资料

protected void addCarInfo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Cars c=new Cars();

try {

//文件保存路径

String filePath = getServletContext().getRealPath("/");

System.out.println(filePath+"==============1");

DiskFileItemFactory factory = new DiskFileItemFactory();

factory.setSizeThreshold(4096);

ServletFileUpload upload = new ServletFileUpload(factory);

List items = upload.parseRequest(request);

Iterator> iter = items.iterator();

while(iter.hasNext()){

FileItem item = (FileItem)iter.next();

if(item.isFormField()){ //普通表单域//程序逐个判断input文件的作用是普通的表单还是上传文件的表单

//获取input的name值

String name = item.getFieldName();

//获取inpout输入的值

String value = item.getString();

System.out.println(name+"==="+value);

if(name.equals("gname")){

System.out.println(value+"====");

c.setGname(value);

}

}else{//上传文件域

//文件名称

String fileName = item.getName(); //获取file表单的Name

fileName = fileName.substring(fileName.lastIndexOf("\\") + 1,fileName.length());

System.out.println(fileName+"===============3");

String path = filePath + "images\\" + fileName;//将地址进行拼接,这个地址是将文件存放的地址

System.out.println("文件上传到:" + path);

String p="images/" + fileName;//将地址 拼接好存放在数据库中,方便拿取数据

c.setPic(p);

File file = new File(path);

item.write(file);

}

}

} catch (FileUploadException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Integer a=cs.addCarsInfo(c);

if(a!=null){

System.out.println("成功了!");

response.sendRedirect("asset.html");

}else{

response.sendRedirect("addCarsInfo.html");

}

}

前端页面代码

汽车名:

上传图片:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐