Oracle数据库存储某张图片的相对路径,在服务端这边怎么引用,并返回给客户端。服务端指得是本人本人建立的We

J2EE 码拜 4年前 (2016-09-19) 421次浏览
这边的服务端是WebService服务端。就都是Java程序,然后有结合的Hibernate。这些其实不重要。就是想问,本人通过select语句获得到这个路径之后,在本人的服务端这边,也就是一个Java文件,要怎么处理,然后能返回给客户端。
在数据库里存的是路径的这个情况下,能返回给客户端的,就本人现在所知的,有两种情况,第一种是返回一个字符串,字符串的内容是那张图片的完整路径,当然,是客户端能访问到的路径,原因是现在都在本人的计算机里,所以是都能访问的。
第二种情况,就是在服务端获得了这个路径之后,对这个图片进行base64的解码(还算编码),然后再发送给客户端,然后在客户端那边处理。
现在本人想问就是,第一种方法,本人怎么获取到完整的路径,就是客户端也能访问到的路径。然后客户端在获得之后,又要怎么处理呢。就是获得字符串之后要怎么处理呢,。
第二种,就是获取到这个路径,然后肯定得得到绝对路径,再对其进行处理。这边又要怎么处理呢?   最好是来个简单的例子。
然后还想再问一下,假如是要直接将图片存到Oracle数据库里,就是通过放在数据类型为blob的字段里,又要怎么处理呢?  我们只能通过Java程序将图片文件放进去嘛?  那取的时候又要怎么取呢。  麻烦回答下。谢谢大家
解决方案

30

1  返回给用户一个http://xxx/xxx.jpg的url,浏览器可以打开。用户可以用浏览器打开,或嵌入你的页面返回给客户
2 jsp处理方法:处理参数,找到图像文件。读取图像文件,设置文件头中的ContentType,ContentLength,然后向输出流里写文件

                resp.setContentType(fileContentType);
		resp.setContentLength((int) new File(realPath).length());
		try
		{
			BufferedInputStream bis = new BufferedInputStream(new FileInputStream(realPath));
			BufferedOutputStream bos = new BufferedOutputStream(resp.getOutputStream());
			byte[] bytes = new byte[4096];
			int length = 0;
			while ((length = bis.read(bytes)) != -1)
			{
				bos.write(bytes, 0, length);
			}
			bis.close();
			bos.flush();
			bos.close();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}

30

直接返回前端页面一个url路径,页面<img url=”xxx”/>就可以显示,你服务端所要做的工作就是获得图片服务器的IP地址以及数据库中存的相对路径,拼接好返回给前端页面。
至于你最后说的把图片直接存在数据库,建议你不要试。每个IT人员都在刚开始的时候被深深的教育过,不要这样做,数据库会爆炸,当然本人也没这么做过,所以后果也只是听人说。

20

引用:

现在是这样,本人做的不是JSP页面,所以也就是不是在前台直接展示。本人这边调用数据库的其实等于只是一个Java程序而已,就是Webservice,是能算作一个服务器端。所以没有那个什么<img src=””>这些标签。  都是纯JAVA页面。
那这样的情况下,能麻烦教下怎么获取到图片的位置么。 例如说本人返回给客户端的是一个字符串,这个字符串就代表着这个图片的绝对地址,在客户端肯定是得要使用绝对地址。那本人在服务器端,从数据库,选取到的肯定是一个相对地址,那相对地址之前的前缀怎么获取到。就是拼接的前面的一部分是什么地址。 怎么获取。
谢谢。

拼接前面的地址就是你图片服务器的IP地址啊,你的图片存在哪个服务器就写哪个地址,假如是直接存在应用服务器上的,那就是应用服务器的ip,这种服务器地址应该是配置好的,或许是配置文件、或许是配置表。  这个是你应该提前知道的,直接就拿过来用的。

20

两个事情:
1 返回url,servlet处理带参数(名称等等……)查询,返回结果,格式可以采用json
2 返回图片:还是servlet实现,get方法,传递图片ID或其他参数。根据参数查找到文件,使用本人前面给出的代码,输出出去,就可以在浏览器中看到图片(容易测试)
3 android客户端,httpclient读取,按http协议读取图片

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Oracle数据库存储某张图片的相对路径,在服务端这边怎么引用,并返回给客户端。服务端指得是本人本人建立的We
喜欢 (0)
[1034331897@qq.com]
分享 (0)