SSM项目关于如何下载图片

首先也是最重要的就是首先导入jar包


我的之前就是忘记导入jar包了,一直不对,以为代码错了,最后才想起来忘记导入jar包了

还有就是在Webroot下面见一个文件夹,我的名字是upload



JSP


   
   


姓名:



性别:








头像:








     
   

Controller

@RequestMapping("show1.do")
public String filesUpload1(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

if (!ServletFileUpload.isMultipartContent(request)) {
// 不是二进制格式,程序终止
return null;
}
Img img = new Img();
try {
// 实例化获得工厂类
FileItemFactory factory = new DiskFileItemFactory();


// 获得上传操作类
ServletFileUpload upload = new ServletFileUpload(factory);


// 获得表单项
List list = upload.parseRequest(request);

// 遍历所有发送到请求中的表单控件
for (FileItem fi : list) {

// 如果不是文件域
if (fi.isFormField()) {

// 判断表单的name属性值
if (fi.getFieldName().equals("name"))
// 根据属性值来赋值
img.setName(fi.getString("utf-8"));


if (fi.getFieldName().equals("gender"))
img.setGender(fi.getString("utf-8"));


} else {
// 如果是文件域

//使用是偏移量和随机数生成文件名,降低文件名重复几率
String filename = "" + System.currentTimeMillis()
+ (int) (Math.random() * 1000000);
//在文件吗名之后追加文件的后缀名
filename += fi.getName().substring(
fi.getName().lastIndexOf("."));
//获得服务器所在的真实路径
String path = request.getSession().getServletContext()
.getRealPath("upload");



//System.out.println(path + "\\" + filename);


//将文件上传
fi.write(new File(path +"\\"+ filename));



img.setImgurl(filename);
}
}
System.out.println(list);
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("*****************************");

System.out.println("姓名"+img.getName()+"性别"+img.getGender()+"照片地址"+img.getImgurl());
System.out.println("*****************************");
return "index.jsp";

}

这样得代码直接复制运行,看一下效果

如果想让图片在上传的时候看一下

在Script中加入以下代码


并且在form表单中加入

 


                   
 



你可能感兴趣的:(java知识)