首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在遗留的MySQL驱动程序中插入BLOB会导致“消失”错误

问在遗留的MySQL驱动程序中插入BLOB会导致“消失”错误
EN

Stack Overflow用户
提问于 2014-07-19 22:07:39
回答 1查看 1.8K关注 0票数 5

我按照this教程制作了一个图像上传器。它工作得很好,除非我试图上传更大的文件大小:它只是将文件大小“更改”为64 of,并且只显示较大图像的一小部分。因此,我搜索并发现'blob‘的最大文件大小为64 4GB,因此我将其更改为longblob,它的最大文件大小为4GB。

但是现在,试图上传大图片(1MB及更大),我得到的SQL错误'MySQL服务器已经消失‘。当图像小于1MB时,上传工作。文件大小为915 of的1400x900图像上传,而文件大小为1.6mb的1400x900图像无法上传,文件大小为1mb的gif为250x179。看起来,如果文件大小大于1MB,PHP中的SQL insert函数就不再连接了:这怎么可能?

我的php.ini的最大文件大小为32 My,所以这不是问题。我用的是奶爸。

HTML:

代码语言:javascript
复制
<form action="tutorial.php" method="POST" enctype="multipart/form-data">
    File:
    <input type="file" name="image" > <input type="submit" value="Upload">
</form>

PHP:

代码语言:javascript
复制
// connect to database
include 'include/config.php'; 

// file properties
$file = $_FILES['image']['tmp_name'];

if (!isset($file)){
    echo "Please select an image.";
} else {
    $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $image_name = addslashes($_FILES['image']['name']);
    $image_size = getimagesize($_FILES['image']['tmp_name']);

    if ($image_size==FALSE){
        echo "This is not an image";    
    }else{
        if(!$insert = mysql_query("INSERT INTO gallery VALUES ('', '$image_name', '$image')")){
            die(mysql_error());
            echo "Problem uploading the image.";
        }else{
            $lastid = mysql_insert_id();
            echo "Image uploaded.<p />Your image:<p /><image src=include/get.php?id=$lastid>";
        }
    }
}

PHP配置:

代码语言:javascript
复制
//database credentials
$username = "root";
$password = "root";
$hostname = "localhost"; 

//connection to the database
mysql_connect($hostname, $username, $password) or die(mysql_error()); 
mysql_select_db('imandra') or die(mysql_error()); 
//echo "Connected to MySQL";

PHP get:

代码语言:javascript
复制
include 'config.php'; 

$id= addslashes($_REQUEST['id']);

$image = mysql_query("SELECT * FROM gallery WHERE id='$id'");
$image = mysql_fetch_assoc($image);
$image = $image['image'];

header("Content-type: image/jpeg");

echo $image;
EN

回答 1

Stack Overflow用户

发布于 2014-07-22 11:44:30

您可能需要查看文件(my.cnf)中的设置。

增加max_allowed_packet设置的大小。

代码语言:javascript
复制
max_allowed_packet=50M
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24845443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档