我想使用我的软件的前端存储图像和.docx/.doc,.pptx/.ppt,.pdf文件.我不明白如何实现它以及如何将BLOB和CLOB文件插入表中.请帮忙.
我正在使用Kubuntu 11.04,MySQL5,Qt 4.7.3.
Dev*_*art 28
两种方式:
1 - 使用LOAD_FILE功能 -
INSERT INTO table1 VALUES(1, LOAD_FILE('data.png'));
Run Code Online (Sandbox Code Playgroud)
2 - 将文件作为十六进制字符串插入,例如 -
INSERT INTO table1 VALUES
(1, x'89504E470D0A1A0A0000000D494844520000001000000010080200000090916836000000017352474200AECE1CE90000000467414D410000B18F0BFC6105000000097048597300000EC300000EC301C76FA8640000001E49444154384F6350DAE843126220493550F1A80662426C349406472801006AC91F1040F796BD0000000049454E44AE426082');
Run Code Online (Sandbox Code Playgroud)
lre*_*der 12
INSERT INTO MY_TABLE(id, blob_col) VALUES(1, LOAD_FILE('/full/path/to/file/myfile.png')
Run Code Online (Sandbox Code Playgroud)
LOAD_FILE附加了许多条件.从MySQL文档:
LOAD_FILE(FILE_NAME)
读取文件并以字符串形式返回文件内容.要使用此功能,文件必须位于服务器主机上,您必须指定文件的完整路径名,并且您必须具有FILE权限.该文件必须可由所有人读取,其大小必须小于max_allowed_packet字节.如果secure_file_priv系统变量设置为非空目录名,则要加载的文件必须位于该目录中.
如果由于不满足上述条件之一而导致文件不存在或无法读取,则该函数返回NULL.
此外,Linux中存在LOAD_FILE错误.请参阅http://bugs.mysql.com/bug.php?id=38403以获取该错误,并将MySQL LOAD_FILE返回NULL以获取解决方法.在Ubuntu 12.04,MySQL 5.5.32上,这对我有用:
chown mysql:mysql /tmp/yourfile
归档时间: |
|
查看次数: |
71611 次 |
最近记录: |