java图片路径问题

byte[]b=dept.getImage();Stringtxt="111.png";OutputStreamout=newBufferedOutputStream(n... byte[] b = dept.getImage();
String txt = "111.png";
OutputStream out = new BufferedOutputStream(new FileOutputStream(txt));
out.write(b);
out.flush();
out.close();
return "success";
我在jsp页面用<img src="111.png" />读取从数据库大字段里处理出来的图片,可是在页面上没有显示,并且在项目下也找不到新建出来的111.png文件如果把路径改成"/imageFolder/111.png"(imageFolder在WebRoot下)又报错——java.io.FileNotFoundException: \imageFolder\111.png (系统找不到指定的路径。)
我在把输出流的路径设置为
byte[] b = dept.getImage();
File str = new File("../webapps/login_demo/imageFolder");
if(!str.exists()){
str.mkdirs();
}
File txt = new File("../webapps/login_demo/imageFolder/111.png");
if(!txt.exists()){
txt.createNewFile();
}
OutputStream out = new BufferedOutputStream(new FileOutputStream(txt));
out.write(b);
页面改成
<img src="../imageFolder/111.png"/>
这次能正常跳转页面了,但是创建出来的图片以及路径没有看到(已经把imageFolder文件夹删了)
我去tomcat下看过路径了,在项目下已经生成了文件夹和图片,但是页面就是显示不了。页面的路径该怎么写?如果我的输出流想写个相对路径,还是在项目的目录下该怎么写
展开
 我来答
心風輕雲淡CH
2012-03-30
知道答主
回答量:19
采纳率:0%
帮助的人:10.4万
展开全部
<img src="111.png" /> 引用的是同一目录下的,你上面那段代码根本就没输出到那个目录当然找不到了。 对于一个项目来说图片有个专有的文件夹存放,比如在WebRoot的imageFolder下,那么你在输出流写图片的时候要指定好这个相对路径,然后页面上用<img src="../imageFolder/111.png" />

通常来说解决方案是这样的:以一个图片上传的例子为例,首先会在xml文件中配置好上传文件的绝对路径(例如C:/XXDX/XX这样,将来部署到服务器上时,修改配置文件路径就好了)然后比如我们上传的图片都是用输入流写到xx/xx/war/upload中 (我看你后增加的代码中没有flush(),是不对的) 然后在页面jsp中用/upload/xxx.png取值,之所以这么取是因为“/”是war根目录,当然你要是用"../"那种方式你要查明白你现在的目录级别。
帐号已注销
推荐于2017-12-16 · TA获得超过5622个赞
知道大有可为答主
回答量:1459
采纳率:0%
帮助的人:1378万
展开全部
到底在什么路径下你自己应该清楚,我只能告诉你前面不要乱加 /
最前面加 / 表示根路径,不加的话是相对路径,或者最前面是 . .. 这样的也是相对路径。
imageFolder/111.png
./imageFolder/111.png
都表示当前目录下 imageFolder 文件夹下的 111.png
../imageFolder/111.png
表示在上级目录下的 imageFolder 文件夹下的 111.png
再比如:
../../../imageFolder/111.png
就可以往后退好几层文件夹
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱笑的柯南推理
2018-04-23 · TA获得超过6192个赞
知道大有可为答主
回答量:6693
采纳率:65%
帮助的人:1179万
展开全部
用System.getProperty("user.dir")+"相对的路径" 即可, 或者直接 getInstance("images/image-left.jpg");试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zmax2007
2012-03-28 · 超过13用户采纳过TA的回答
知道答主
回答量:41
采纳率:100%
帮助的人:16.3万
展开全部
应该是跑到\WEB-INF\classes\目录下了。
改成这样试下:
String txt = "../imageFolder/111.png";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
艾梦娇985
2012-03-28
知道答主
回答量:60
采纳率:0%
帮助的人:14.3万
展开全部
你写一下他的完整路径
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式