图片显示

simaa0106 2010-07-24 07:28:53
我的思路是通过数据库中保存的rul地址获取服务器端保存的图片,以流的方式发送给页面,在页面上显示。但是打开页面的时候,没有调用后台的类,图片没有显示。
配置没有问题,上传能够成功。


public class UploadAction extends BaseAction {

private SiteListModel siteListModel;

public byte[] viewToJsp(){
byte[] b = null;
if(siteListModel != null){

HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");

File url = new File(siteListModel.getPhotoUrl());
System.out.println(url +"--------viewToJsp------");
if(url != null){
BufferedInputStream bis = null;
ServletOutputStream sout = null;
try {
bis = new BufferedInputStream(new FileInputStream(url));
byte[] buffer = new byte[1024*8];
int result = -1;
sout = response.getOutputStream();
while((result = bis.read(buffer)) != -1){
System.out.print(result + " ");
sout.write(result);
}
sout.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
bis.close();
sout.close();
} catch (IOException e) {
e.printStackTrace();
}

}
}
}
return b;

}

public SiteListModel getSiteListModel() {
return siteListModel;
}

public void setSiteListModel(SiteListModel siteListModel) {
this.siteListModel = siteListModel;
}

}

页面显示部分
<p:img id="imgest" rowspan="6"  url="UploadAction_viewToJsp.action"  />
...全文
98 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
simaa0106 2010-07-24
  • 打赏
  • 举报
回复
图片的URL是动态的,发送服务器端的文件目录在客户端能查看?

另外我是通过在页面点击uploadify 的BROWSE按钮,把'fileDataName': 'uploadify'传到action里处理的。处理完了应该给页面返回一个处理后的url字符串,然后把这个字符串保存在siteListModel.photoUrl里面去。这个url字符串该怎么传出来呢?
镜中雨 2010-07-24
  • 打赏
  • 举报
回复
为什么不将图片URL直接从数据库读出来呢?效率高的多
dr_lou 2010-07-24
  • 打赏
  • 举报
回复
你数据库存路径,直接发给client不就完了。图片传输的事情,让IE来做。
Silence_Smile 2010-07-24
  • 打赏
  • 举报
回复
看了一下uploadify是个jQuery插件?这个插件不就用在页面里?怎么还要往页面传参数?你指上传文件时附带的信息么?
Silence_Smile 2010-07-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 simaa0106 的回复:]
另外还有个问题就是用uploadify 往页面传个值或者传个对象。应该怎么搞?
[/Quote]
没明白什么意思,uploadify是什么?
closewbq 2010-07-24
  • 打赏
  • 举报
回复
图片既然存放了URL在数据库里,为什么不直接用URL呀,效率不说快慢。增加了出错几率- -!
传值是指uploadify请求的action往页面传值么?
action中通过response.getWriter().print(value);
在页面onComplete: function (event, queueID, fileObj, response, data) {
alert(response);//弹出传递的值
},
是这样?
simaa0106 2010-07-24
  • 打赏
  • 举报
回复
嗯。对。是要带工程名。谢谢。

另外还有个问题就是用uploadify 往页面传个值或者传个对象。应该怎么搞?
Silence_Smile 2010-07-24
  • 打赏
  • 举报
回复
这个类没执行吗?楼主试下绝对路径看看
/工程名/UploadAction_viewToJsp.action

81,115

社区成员

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

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