MySQL BLOB只接受图像吗?
我一直在网上寻找,试图能够上传不同格式的更大文件大小,但我只遇到图像教程。
我有下面的代码,它在if
语句上失败,并在我上传大于 10 megs 的不同文件类型时返回echo
。(列LONGBLOB
(。
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'On'); //On or Off
session_start();
require_once('connect.php');
if(isset($_POST['submit'])){
$file = rand(1000,100000)."-".$_FILES['file']['name'];
$notes = mysqli_real_escape_string($connection,$_POST['notes']);
$file_loc = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_type = $_FILES['file']['type'];
$email = mysqli_real_escape_string($connection, $_SESSION['email']);
$folder="uploads/";
move_uploaded_file($file_loc,$folder.$file);
$sql = "INSERT INTO `supportcontent` (`scontentdata`, `scontentnotes`, `suseremail`, `stype`,`ssize`)
VALUES( '$file','$notes','$email','$file_type ','$file_size')";
$current_id = mysqli_query($connection, $sql)
or die("<b>Error:</b> Problem on Image Insert<br/>" . mysqli_error($connection));
if (isset($current_id)) {
header("Location: landingpage.php?upload=success");
}
}
else{
echo 'file is 0';
}
?>
MySQL BLOB只接受图像吗?
不,您可以在其中存储任何您想要的东西。当您尝试上传超过 10MB 的文件时,失败的不是 SQL,而是 PHP 代码。也:
-
文件大小限制。检查 php.ini 文件中
upload_max_filesize
和post_max_size
设置的值。 -
或操作超时。这更有可能是罪魁祸首,特别是如果您从未更改过 php.ini 文件中的默认值。PHP 的默认超时为 30 秒,因此您的文件必须在 30 秒内上传。您可以使用
max_execution_time
设置在 php.ini 文件中更改它,或者最好使用set_time_limit()
函数在代码中更改它。
例如,要将超时设置为 2 分钟:
set_time_limit(120);
您可以检查max_allowed_packet大小的值,并检查此值是否设置为大于10MB以处理您的情况。