Php 上载大文件时,mysqli insert不起作用
我以前从未遇到过这个奇怪的问题。当我上传一个小文件时,代码运行良好,但当我上传一个大文件(105mb)时,查询不起作用,并给出这个输出 MySQL服务器已经消失-2006../uploads/sermons/2019.03.08-Bro-GK.mp3Php 上载大文件时,mysqli insert不起作用,php,mysql,mysqli,Php,Mysql,Mysqli,我以前从未遇到过这个奇怪的问题。当我上传一个小文件时,代码运行良好,但当我上传一个大文件(105mb)时,查询不起作用,并给出这个输出 MySQL服务器已经消失-2006../uploads/sermons/2019.03.08-Bro-GK.mp3 您似乎遇到了读取超时,因为上载所花费的时间比脚本保持连接打开所花费的时间要长。尝试将MYSQLI\u OPT\u READ\u TIMEOUT的值设置为合适的值,如soMYSQLI\u选项($conn,MYSQLI\u OPT\u READ\u T
您似乎遇到了读取超时,因为上载所花费的时间比脚本保持连接打开所花费的时间要长。尝试将
MYSQLI\u OPT\u READ\u TIMEOUT
的值设置为合适的值,如soMYSQLI\u选项($conn,MYSQLI\u OPT\u READ\u TIMEOUT,以秒为单位)代码>。在实际连接之前,您可能必须设置$conn
,以防遇到此错误“当我上载大文件(105mb)时,查询不起作用”大文件上载与MYSQL错误无关。你需要增加上传文件的大小。
这是你得到的唯一错误吗?@devpro-为什么“MySQL服务器已经消失”与MySQL无关?在这个例子中,它的发生是由于文件大,错误与MySQL有关,但在这个例子中,没有必要修复任何与查询相关的问题。在本例中,只需检查文件大小及其对post的限制。我提到了大文件上传@PaulSpiegel@devpro-但它可能也与上载\u max\u filesize
无关,因为上载没有失败。看起来mysql会话超时了。
$uploadDirectory = "../uploads/sermons/";
require '../includes/config.php'; // this contains the connection ($conn)
$errors = []; // Store all foreseen and unforseen errors here
$fileExtensions = ['mp3','wav']; // Get all the file extensions
$fileName = $_FILES['file']['name'];
$fileSize = $_FILES['file']['size'];
$fileTmpName = $_FILES['file']['tmp_name'];
$fileType = $_FILES['file']['type'];
$fileExtension = explode('.',$fileName);
$fileExtension = end($fileExtension);
$fileExtension = strtolower($fileExtension);
$uploadPath = $uploadDirectory . basename($fileName);
if (! in_array($fileExtension,$fileExtensions)) {
$errors[] = "This file extension is not allowed. Please upload a mp3 or wav file";
}
if (empty($errors)) {
$didUpload = move_uploaded_file($fileTmpName, $uploadPath);
if ($didUpload) {
$title = mysqli_real_escape_string($conn,$_POST["Title"]);
$speaker = mysqli_real_escape_string($conn,$_POST["Speaker"]);
$date = mysqli_real_escape_string($conn,$_POST["date"]);
$date = date('Y-m-d', strtotime($date));
$description = mysqli_real_escape_string($conn,$_POST["Description"]);
$query = "Insert into `sermons` (`Title`,`Description`,`Speaker`,`Date`,`Link`) values('$title','$description','$speaker','$date','$uploadPath');";
$result = mysqli_query($conn,$query) or die(mysqli_error($conn)." - ".mysqli_errno($conn)." ".$uploadPath);