在毕业设计过程中遇到的一个问题,图片上传保存问题。
图片框以及上传文件框
<div class="showImg" id="image-wrap">
<img id="ImgPr"/>
</div>
<div>
<input type="file" id="up" name="upload_img" />
</div>
js处理上传加载图片:
//加载图片
$("#up").click(function(){
$("#ImgPr").attr("src","");
$("#up").val("");
});
$("#up").uploadPreview({ Img: "ImgPr", Width: 200, Height: 200 });
保存图片,ajax异步处理,发送请求到后台
private String getImgByteList(HttpServletRequest request){
String filename=null;
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//获取服务器的路径,再加上我的保存图片的文件夹路径
String url="F:/CR/CR/WebRoot/views/images/staff";//直接把工程相应的图片目录写下来
// String url="C:/Users/Administrator/Desktop/apache-tomcat-8.0.42/webapps/CR/views/images/company";//这个是部署到tomcat的
//判断 request 是否有文件上传,即多部分请求
if(multipartResolver.isMultipart(request)){
//转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
//取得request中的所有文件名
Iterator<String> iter = multiRequest.getFileNames();
while(iter.hasNext()){
//取得上传文件
MultipartFile file = multiRequest.getFile(iter.next());
if(file != null){
try {
filename=file.getOriginalFilename();
//保存文件到服务器上
File targetfile=new File(url,filename);
InputStream ins=file.getInputStream();
FileOutputStream fos=new FileOutputStream(targetfile);
byte b[]=new byte[1024];
int temp=0;
while((temp=ins.read(b))!=-1){
fos.write(b,0,temp);
}
fos.close();
ins.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
}
return filename;
}
返回了文件的名字并保存图片到我的服务器了,剩下的就是把url保存到数据库,再刷新服务器就行了。