【发布时间】:2016-07-09 06:04:05
【问题描述】:
我目前正在学习 php 和 mysql。我正在关注一些不同的教程,并尝试将图像插入并稍后显示到我的 mysql 数据库中。 我不想在数据库中存储指向图像文件的链接
但是,尽管 phpmyadmin 和 sql 都没有抛出任何错误,但文件上传无法按预期工作。无论文件大小,它只上传大约 75% 的文件,因此会产生损坏的图片。
请参阅下面的屏幕截图以帮助说明问题。
在第一张图片上,您看到我选择了图像 IMG_1422,并在其旁边设置了允许的最大文件大小。
在下图中,您可以看到右侧的实际文件大小(1.8)和插入的文件大小(1.4)
我用来存储图像文件的数据类型是 long_blob 类型。
这里是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
【问题讨论】:
-
如果您使用较小的文件,它是否可以正常工作,比如说大约 100-200KB 的文件?对于一些故障排除时间,我不太担心显示的文件大小,因为计算大小可能存在差异(1,000 与 1,024 字节数学,字节与位等),而是专注于文件;尝试通过 phpMyAdmin 查看它,会发生什么?尝试下载它,然后与原始版本进行比较。
-
您好,感谢您的回复。没有文件大小没有区别。我还从网上下载了一些随机的 jpg,只是为了仔细检查我的图片是否损坏。如果我在 phpmyadmin 中查看该文件,它也会显示不正确。
-
如果是资源限制或超时,我希望完成更小的文件,所以这有点令人费解。您使用的是什么 phpMyAdmin、MySQL 和 PHP 版本?什么网络服务器?网络服务器错误日志中有任何提示吗?
-
我正在使用适用于 Windows 10 的 xampp。刚刚从网站下载了最新的软件包。 Apache 网络服务器、php 5.x 和 InnoDb 数据库。不,网络服务器的错误日志中没有任何内容......
-
我很难找到他们网站上列出的 phpMyAdmin 版本号,但是在右侧的主页上应该相对容易找到它,它提供了很多服务器信息,朝向底部是标题“phpMyAdmin”,后面是“版本信息”(就在“文档”、“Wiki”等链接的上方)。
标签: mysql phpmyadmin blob