所以我做了一個PHP文件上傳文件。這是代碼。PHP - 無法上傳文件,甚至超過1MB,編輯後php.ini
HTML:
<html>
<head></head>
<body>
<form method="post" action="" enctype="multipart/form-data">
Upload File:
<input type="file" name="upload" /><br>
<input type="submit" name="submit" value="Submit"/>
</form>
</body>
</html>
PHP:
<?php
include("config.php");
if(isset($_POST['submit']) )
{
if ($_FILES['upload']['size'] != 0){
$filename = $con->real_escape_string($_FILES['upload']['name']);
$filedata= $con->real_escape_string(file_get_contents($_FILES['upload']['tmp_name']));
$filetype = $con->real_escape_string($_FILES['upload']['type']);
$filesize = intval($_FILES['upload']['size']);
$query = "INSERT INTO contracts(`filename`,`filedata`, `filetype`,`filesize`) VALUES ('$filename','$filedata','$filetype','$filesize')" ;
if ($con->query($query) == TRUE) {
echo "<br><br> New record created successfully";
}
else
{
echo "Error:<br>" . $con->error;
}
} else {
$filename = $con->real_escape_string($_FILES['upload']['name']);
$filetype = $con->real_escape_string($_FILES['upload']['type']);
$filesize = intval($_FILES['upload']['size']);
$query = "INSERT INTO contracts(`filename`, `filetype`,`filesize`) VALUES ('$filename','$filetype','$filesize')" ;
if ($con->query($query) == TRUE) {
echo "<br><br> New record created successfully";
} else {
echo "Error:<br>" . $con->error;
}
}
$con->close();
}
?>
但它顯示了這樣的警告。
Warning: mysqli::query(): MySQL server has gone away in C:\xampp\htdocs\contractdb\filetest.php on line 29
Warning: mysqli::query(): Error reading result set's header in C:\xampp\htdocs\contractdb\filetest.php on line 29
Error:
MySQL server has gone away
儘管我修改了php.ini文件並重新啓動了apache。這是我在php.ini文件中編輯的內容。我只編輯了這三件事。
memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M
我嘗試上傳1MB以上的文件,但它仍然不起作用。我想上傳大文件。我做錯了什麼來獲得警告信息?
已重新啓動PHP服務器? –
你是說重啓apache?因爲我已經做了很多次了。 –
如果您嘗試phpinfo(),您會看到什麼? 把這一行放在一個文件中,並嘗試瀏覽它..它會告訴你,如果你所做的更改已被應用。 <?php phpinfo(); ?> – user2399432