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';
}
?>
答案 0 :(得分:1)
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);
答案 1 :(得分:0)
您可以检查max_allowed_packet大小的值,并检查是否设置为大于10MB来处理您的情况。