我按照this教程制作了一个图像上传器.它工作正常,除非我尝试上传更大的文件大小:它只是将文件大小“更改”为64KB并且只显示较大图像的一小部分.所以,我用Google搜索并发现’blob’的最大文件大小为64kb,因此我将其更改为longblob,其最大文件大小为4GB.
但现在,尝试上传大图像(1MB或更大),我得到sql错误’MysqL服务器已经消失’.对于小于1MB的图像,上传工作.上传文件大小为915kb的1400×900图像,但文件大小为1.6mb的1400×900图像不上传.上传了一个250×179的gif,文件大小为1mb.看起来如果文件大小大于1MB,PHP中的sql插入函数就不再连接了:这怎么可能?
我的PHP.ini的最大文件大小为32MB,所以这不是问题.我正在使用MAMP.
HTML:
PHP:
// 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.PHP?id=$lastid>";
}
}
}
PHP配置:
//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得到:
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;
最佳答案