MySQL BLOB只接受图像吗?

时间:2018-06-03 07:15:47

标签: php mysql

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';
        }   
?>

2 个答案:

答案 0 :(得分:1)

  

MySQL BLOB是否只接受图像?

不,你可以存储你想要的任何东西。当您尝试上传超过10MB的文件时失败的不是SQL,而是PHP代码。之一:

  1. 文件大小限制。检查php.ini文件中upload_max_filesizepost_max_size设置的值。

  2. 或操作超时。如果您从未更改过php.ini文件中的默认值,则更有可能成为罪魁祸首。 PHP中的默认超时为30秒,因此您的文件必须在30秒内上传。您可以使用max_execution_time设置在php.ini文件中更改它,或者最好使用set_time_limit()函数在代码中更改它。

  3. 示例,将超时设置为2分钟:

    set_time_limit(120);
    

答案 1 :(得分:0)

您可以检查max_allowed_pa​​cket大小的值,并检查是否设置为大于10MB来处理您的情况。