【发布时间】:2014-08-16 18:06:45
【问题描述】:
我正在将图像上传到 Blob 中的数据库,但文件名已更改为 database_name-table_name.bin.png,这不太好。
是否有保留上传它们的应用程序使用的名称?
我用来上传它们的java代码(准备好的语句)是:
FileInputStream inputStream = null;
// Directory with the name i want to use
File image = new File(CreateArticleController.articleDetails.get("introImg"));
inputStream = new FileInputStream(image);
pstmt.setBinaryStream(7, (InputStream) inputStream,(int) (image.length()));
数据库:
CREATE TABLE IF NOT EXISTS `temp_article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`author` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`author_id` int(10) NOT NULL,
`type` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`wfurl` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`intro` text COLLATE utf8_unicode_ci NOT NULL,
`intro_image` mediumblob NOT NULL,
`status` int(10) NOT NULL DEFAULT '0',
`main_image` mediumblob NOT NULL,
`content_1` text COLLATE utf8_unicode_ci,
`image_1` mediumblob,
`content_2` text COLLATE utf8_unicode_ci,
`image_2` mediumblob,
`content_3` text COLLATE utf8_unicode_ci,
`image_3` mediumblob,
`content_4` text COLLATE utf8_unicode_ci,
`image_4` mediumblob,
// Images and content areas go on for 17 of each
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;
【问题讨论】:
-
请发布您的表架构。
-
@chrylis - 发布数据库设置
-
文件名存储在哪里?我以为 mysql blob 字段只会存储字节
-
您究竟是如何从 blob 中下载图像的?我的感觉是某些应用程序正在生成此名称。它是一些 mysql 前端吗?
-
我不太了解 phpmyadmin,但也许您需要定义类似 phpmyadmin.readthedocs.org/en/latest/transformations.html 的内容 - 此外,您可能需要将原始文件名存储在数据库中的某个位置跨度>
标签: java mysql phpmyadmin blob