不完整的损坏图像上传blob phpmyadmin

时间:2016-01-06 14:07:20

标签: mysql phpmyadmin blob

我目前正在学习php和mysql。我正在关注一些不同的教程,并试图将显示图像插入到我的mysql数据库中。 我不想存储数据库中图像文件的链接

然而,通过phpmyadmin和sql都没有抛出任何错误,文件上传不能按预期工作。无论文件大小如何,它只上传了大约75%的文件,因此会产生损坏的图片。

请参阅下面的屏幕截图,以帮助说明问题。

在第一张图片上,您看到我选择IMG_1422图像,并在其旁边显示允许的最大文件大小。

在下图中,您可以看到右侧的实际文件大小(1.8)和插入的文件大小(1.4)

我用来存储图像文件的数据类型是long_blob。

Inserting the pic via phpmyadmin

Overview of the database after inserting the record

这是mysql.conf中没有注释掉的部分。

innodb_data_home_dir = "C:/xampp/mysql/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "C:/xampp/mysql/data"
#innodb_log_arch_dir = "C:/xampp/mysql/data"
## You can set .._buffer_pool_size up to 50 - 80 %
## of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 10M
## Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 128M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

## UTF 8 Settings
#init-connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
#character_set_server=utf8
#skip-character-set-client-handshake
#character_sets-dir="C:/xampp/mysql/share/charsets"

[mysqldump]
quick
max_allowed_packet = 32M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

2 个答案:

答案 0 :(得分:0)

好吧这也不是我的问题的明确答案,我找出问题的一部分,并意识到问题太局部化,因为它可以回答并帮助其他人。

问题在于存储引擎innodb。 在采用配置文件的过程中,以避免错误,如:

The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size. 

我必须无意中破坏了inno_db数据库类型的配置文件。 如果我将数据库类型更改为MyISAM,我的所有问题都已成为过去。

现在想知道是否还有其他后果吗?

答案 1 :(得分:0)

如果你在6个月后没有得到好的答案...... 今天我遇到了同样的问题,我刚刚在数据库(phpMyAdmin)中更改了类型LONGBLOB。

希望我可以帮助这个人!