栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何仅将图像路径(URL)存储在数据库中而不是图像本身?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何仅将图像路径(URL)存储在数据库中而不是图像本身?

您应该只将图像路径而不是整个图像存储在数据库中。

确实是推荐的。在数据库中存储二进制数据在语义上完全没有意义。您无法为其编制索引,也无法在其中进行搜索等。只是“死”数据。您可以将其直接存储在磁盘文件系统上,然后将其唯一标识符(通常只是文件名)存储在数据库中。文件名可以是可索引的varchar(因此允许更快

SELECT... WHERe
)。


我想知道是否可以将图像直接从Servlet保存到任何图像托管网站,该网站立即为我提供一个链接,该链接将存储在数据库列中以备将来使用?

我不确定您在这里有什么具体问题。您应该意识到,传输字节毕竟只是读取任意数据

InputStream
并将其写入仲裁的问题
OutputStream
。您的具体问题应该是“如何获取
InputStream
上载的映像?”或“如何获取
OutputStream
本地磁盘文件系统?”,或者也许是“如何获取
OutputStream
映像托管网站?”。
”。

获取上传的图像

InputStream
很容易。所有不错的文件上传API都提供了一种
getInputStream()
方法。另请参阅如何使用JSP /Servlet将文件上传到服务器?获得一个
OutputStream
File
本地磁盘文件系统上也很容易。只需
FileOutputStream
在其周围构造一个即可。

File file = File.createTempFile(prefix, suffix, "/path/to/uploads");InputStream input = uploadedFile.getInputStream();OutputStream output = new FileOutputStream(file);// Now write input to output.String uniqueFileName = file.getName();// Now store filename in DB.

获得一个

OutputStream
到其他主机相距一个故事。您想如何连接到它?使用FTP?使用
FTPClient#appendFileStream()
。还是使用HTTP(eek)?使用
URLConnection#getOutputStream()
或HttpClient。如果卡住,您应该问一个更细粒度的问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/615925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号