起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1280|回复: 3

[结贴] wex5怎么获取项目的在服务器上的发布路径?

[复制链接]

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
发表于 2017-4-20 15:49:51 | 显示全部楼层 |阅读模式
因为公司要求不能直接将图片存到服务器上,要将图片直接转换成二进制存入数据库中。但是取图片的时候很麻烦,我现在的做法是,先用Hibernate从数据库中取出需要的数据,放在ResultSet里面,再一条一条地拆开,将图片用BASE64加密,然后再将数据一条一条地封装成一个Row,放在Table里面。本来封装Table那里就有点慢了,再将图片加密处理,数据量就很大,数据稍微一多就慢得不行。现在是想取图片的时候将图片下载到服务器上,再直接传路径。服务器的访问地址我是取到了,但是项目在服务器中地址不知道该怎么取,就是我要放图片的物理地址。用(Thread.currentThread().getContextClassLoader().getResource("").getPath())取到的是我本地tomact下面的路径;JustepConfig.getHome()又引入不了包。请问还有什么方法?
发表于 2017-4-20 16:36:18 | 显示全部楼层
既然选择了图片存储在数据库中!那就没办法避免慢的情况了!  数据库中存储二进制就是会慢的!

还要将图片再存储到物理地址上一份,那不是多此一举吗??

不如直接使用attachmentSimple 组件上传图片的时候,就直接存储在物理服务器上,就可以了

当然如果非要按你的思路实现,也可以,就是用文件流的形式将文件写到 webApps 的某个目录下~!
比如存储位置是webapps/img/test.png
前端URL访问的地址就是 http://localhost:8080/img/test.png

获取webapps路径可以参考下:
http://www.cnblogs.com/guoyuqiangf8/p/3506768.html

request.getRealPath("../")
获取根目录,然后通过字符串拼接的方式创建新的目录!!图片写在这个目录下就行的!

baas中获取request 对象的方法是
http://docs.wex5.com/wex5-server-question-list-2015/

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2017-4-20 17:04:02 | 显示全部楼层
liangyongfei 发表于 2017-4-20 16:36
既然选择了图片存储在数据库中!那就没办法避免慢的情况了!  数据库中存储二进制就是会慢的!

还要将图片 ...

图片只是暂时放在服务器上,之后要做缓存清理的。我试试你说的,谢谢!
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2017-4-20 21:08:03 | 显示全部楼层
liangyongfei 发表于 2017-4-20 16:36
既然选择了图片存储在数据库中!那就没办法避免慢的情况了!  数据库中存储二进制就是会慢的!

还要将图片 ...

问题解决。
String realPath= request.getSession().getServletContext().getRealPath("/");得到的是E:\Tool\WeX5_V3.6\apache-tomcat\webapps\..\..\runtime\BaasServer 这个路径,通过realPath.substring(0, realPath.indexOf(".."));得到E:\Tool\WeX5_V3.6\apache-tomcat\webapps\,就可以将图片保存在webapp下面了,前台通过
var strFullPath=window.document.location.href;
                    var strPath=window.document.location.pathname;
                    var pos=strFullPath.indexOf(strPath);
                    var prePath=strFullPath.substring(0,pos);得到http://localhost:8080,拼接上webapp下的图片路径就OK了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-10-1 19:36 , Processed in 0.111604 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表