【发布时间】:2013-09-14 07:18:45
【问题描述】:
我正在尝试将图像插入我的 MySQL 服务器。我做了一些研究,看起来最好的方法是通过LOAD_FILE()。但是,LOAD_FILE() 始终返回 null。我知道LOAD_FILE()有4个条件:
- 文件必须位于服务器主机上
- 您必须指定文件的完整路径名,并且您必须具有 FILE 权限。
- 该文件必须可供所有人读取,并且其大小小于 max_allowed_packet 字节。
- 如果将secure_file_priv 系统变量设置为非空目录名,则要加载的文件必须位于该目录中。
我目前正在使用:
select LOAD_FILE('/Users/pricedb/Desktop/FolderName/imageName');
它返回NULL
我已确认所有权限均已授予用户。文件必须位于服务器主机上是什么意思?服务器正在我的本地计算机上运行,并且文件位于那里,这是否意味着我擅长这一点?
任何建议将不胜感激,我不知道为什么它没有返回值。
【问题讨论】:
-
你要加载图片吗?
-
是的,我正在加载 jpg。
-
除了您应该不将图像存储在 MySQL 数据库中之外,这样做的原因是什么?
-
我正在创建一个允许用户查看和下载特定图像的应用程序。我需要一种显示图像的方法,除非他们被授权,否则不让用户实际下载它们。我当前的原型应用程序有 SQL 保存文件位置,然后应用程序使用这些位置来显示图像,但在最终版本中,客户端不会将图像放在他们的计算机上。如果不是通过将图像存储在 SQL 上,我还能如何允许用户查看图像? (PS,我对 SQL 很陌生,为什么将图像存储在服务器上是不好的做法?)
标签: mysql null mysql-loadfile