为什么图片保存正确,路径提取也正确,就是不能显示图片

isouvenir 2014-03-13 05:23:24
显示效果
图片显示路径
页面代码(导航栏)

上传图片显示,没有取到图片。。
修改头像形成图片

修改图片代码
public void upload_avatar(HttpServletRequest request,
HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0L);
try {
String resourceOneHomeUpload= request.getSession().getServletContext().getInitParameter("resourceOneHomeUpload");

String uploadFilePath = this.configService.getSysConfig()
.getUploadFilePath();

String filePath = resourceOneHomeUpload+File.separator+uploadFilePath+File.separator+"buyer_photo";



Map map = new HashMap();
File uploadDir = new File(filePath);
if (!uploadDir.exists()) {
uploadDir.mkdirs();
}

String customParams = CommUtil.null2String(request
.getParameter("custom_params"));
System.out.println("custom_params = " + customParams);

String imageType = CommUtil.null2String(request
.getParameter("image_type"));
if ("".equals(imageType)) {
imageType = ".jpg";
}

String bigAvatarContent = CommUtil.null2String(request
.getParameter("big_avatar"));
User user = SecurityUserHolder.getCurrentUser();
String bigAvatarName = SecurityUserHolder.getCurrentUser().getId()
+ "_big";

saveImage(filePath, imageType, bigAvatarContent, bigAvatarName);
Accessory buyer_photo = new Accessory();
if (user.getPhoto() != null) {
buyer_photo = user.getPhoto();
} else {
buyer_photo.setAddTime(new Date());
buyer_photo.setWidth(105);
buyer_photo.setHeight(98);
}
buyer_photo.setName(bigAvatarName + imageType);
buyer_photo.setExt(imageType);
buyer_photo.setPath(this.configService.getSysConfig().getUploadFilePath()
+ "/buyer_photo");
if (user.getPhoto() == null) {
buyer_photo.setDeleteStatus(Boolean.valueOf(false));
buyer_photo.setAddTime(new Date());
this.accessoryService.save(buyer_photo);
}
else {
this.accessoryService.update(buyer_photo);
}
user.setPhoto(buyer_photo);
this.userService.update(user);

response.setContentType("text/xml");

response.getWriter().write("200");
} catch (Exception e) {
e.printStackTrace();
response.setContentType("text/xml");

response.getWriter().write("400");
}
}

保存图片代码
private void saveImage(String filePath, String imageType,
String avatarContent, String avatarName) throws IOException {
avatarContent = CommUtil.null2String(avatarContent);
if (!"".equals(avatarContent)) {
if ("".equals(avatarName))
avatarName = UUID.randomUUID().toString() + ".jpg";
else {
avatarName = avatarName + imageType;
}
byte[] data = _decoder.decodeBuffer(avatarContent);
File f = new File(filePath + File.separator + avatarName);
DataOutputStream dos = new DataOutputStream(new FileOutputStream(f));
dos.write(data);
dos.flush();
dos.close();
}
}


读取图片
public void getProductImg(HttpServletRequest request, HttpServletResponse response, String name)
throws IOException
{
Map<String,String> ContentTypeMap=new HashMap<String,String>();
ContentTypeMap.put("jpg", "image/jpeg");
ContentTypeMap.put("jpeg", "image/jpeg");
ContentTypeMap.put("png", "image/png");
ContentTypeMap.put("gif", "image/gif");
ContentTypeMap.put("bmp", "image/bmp");
String extend="jpg";
String imgName = request.getParameter("fileName");//得到fileName 名称
if(imgName!=null&&!"".equals(imgName)){
if(imgName.lastIndexOf(".")!=-1){
extend=imgName.substring(imgName.lastIndexOf(".")+1);
}
extend= extend.toLowerCase();
}
response.setContentType(ContentTypeMap.get(extend));//设置打印格式
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0L);
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()+ path + "/";
try {
String resourceOneHomeUpload = request.getSession()
.getServletContext()
.getInitParameter("resourceOneHomeUpload");
String imgPath1 = resourceOneHomeUpload + File.separator + imgName;
String imgPath2 = basePath
+ "resources/style/biaozhun/images/pro_nopic.jpg";
// 判断该路径下的文件是否存在
File file = new File(imgPath1);
if (file.exists() && !imgName.equals("")) {
DataOutputStream temps = new DataOutputStream(
response.getOutputStream());
DataInputStream in = new DataInputStream(new FileInputStream(
imgPath1));
byte[] b = new byte[2048];
while ((in.read(b)) != -1) {
temps.write(b);
}
temps.flush();
in.close();
temps.close();

} else {
DataOutputStream temps = new DataOutputStream(
response.getOutputStream());
URL url = new URL(imgPath2);
DataInputStream in = new DataInputStream(url.openStream());
byte[] b = new byte[2048];
while ((in.read(b)) != -1) {
temps.write(b);
}
temps.flush();
in.close();
temps.close();
}
} catch (Exception e) {
// out.println(e.getMessage());
}
附件类
...全文
490 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
isouvenir 2014-03-20
  • 打赏
  • 举报
回复
#set($img="$!webPath/resources/style/system/front/default/images/usercenter/headimg.jpg") #if($!{user.user_photo}) #set($img="$!webPath/getProductImg.htm?fileName=$!user.user_photo.path/$!user.user_photo.name") #else #set($img="$!webPath/$!user.user_photo.path/$!user.user_photo.name") #end 改成这样就行了
isouvenir 2014-03-20
  • 打赏
  • 举报
回复
引用 5 楼 zhuweisyyc 的回复:
404那就是在页面上的图片路径不对
嗯,我知道,已经解决了
zhuweisyyc 2014-03-13
  • 打赏
  • 举报
回复
404那就是在页面上的图片路径不对
isouvenir 2014-03-13
  • 打赏
  • 举报
回复
引用 3 楼 defonds 的回复:
呃,这个跟浏览器有关。ie 早期版本浏览器是个 X。 那你右击一个图片被剁两半的图片,属性,复制图片 URL,到浏览器访问下,看看能访问不。
报404错误
Defonds 2014-03-13
  • 打赏
  • 举报
回复
呃,这个跟浏览器有关。ie 早期版本浏览器是个 X。 那你右击一个图片被剁两半的图片,属性,复制图片 URL,到浏览器访问下,看看能访问不。
isouvenir 2014-03-13
  • 打赏
  • 举报
回复
引用 1 楼 defonds 的回复:
好长。
不能显示,总得有个 X 吧?
你右击 X,属性,复制图片 URL,到浏览器访问下,看看能访问不。

就是一个图片被剁两半的图片,没有×一来就在加载。完了就
Defonds 2014-03-13
  • 打赏
  • 举报
回复
好长。 不能显示,总得有个 X 吧? 你右击 X,属性,复制图片 URL,到浏览器访问下,看看能访问不。

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧