我已經無法上傳(.OBJ)文件到服務器,並得到一個「錯誤1」這意味着文件太大,上傳到服務器,即使php.ini文件改變
上傳的文件超過在php.ini中的upload_max_filesize指令
我從這個網頁信息 - http://php.net/manual/en/features.file-upload.errors.php
然後我去了php.ini文件,並改變了upload_max_filesize
和都10至10000M。
當我嘗試上傳文件即使只有3MB時,仍然收到「錯誤1」。我也重新啓動了服務器,以便我對php.ini文件所做的更改可以生效。我知道我的代碼適用於較小的文件,因爲我可以發送一個包含單詞「Test」的小TXT文件。
這裏是form.php文件,它包含處理服務器端發送文件的PHP代碼和創建文件選擇和上傳功能的HTML代碼。
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
ini_set('max_execution_time', 3000000);
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
var_dump($_FILES);
echo "<br/><b>File Name:</b> " . $_FILES["file"]["name"] . "<br>";
echo "<b>Type:</b> " . $_FILES["file"]["type"] . "<br>";
echo "<b>Size:</b> " . ($_FILES["file"]["size"]/1024) . " kB<br>";
echo "<b>Temp File Name:</b> " . $_FILES["file"]["tmp_name"] . "<br>";
echo "<b>Error:</b> " . $_FILES["file"]["error"] . "<br>";
$sourcePath = $_FILES['file']['tmp_name']; // Storing source path of the file in a variable
$targetPath = "upload/" . $_FILES['file']['name']; // Target path where file is to be stored
move_uploaded_file($sourcePath, $targetPath);
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>
<body>
<form action="form.php" method="post" enctype="multipart/form-data">
<label>File</label>
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
<div></div>
</body>
<script>
$(function() {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
url: this.action,
type: this.method,
data: new FormData(this),
processData: false,
contentType: false,
success: function (res) {
$('div').html(res);
}
});
});
});
</script>
</html>
總結我的問題是,爲什麼我不能上傳所需的文件,即使我已經更改了php.ini文件的相應變量?
打印phpinfo頁面並檢查其中的值:<?php phpinfo(); ?> – vsakos
@vsakos我用phpinfo()檢查了值,它表示'upload_max_filesize'設置爲2M。所以它沒有被更新。我仍然無法更新這個值,因爲我現在已經嘗試重新啓動Apache Webserver,但沒有改變任何東西。 – skelto
@vsakos我一定是更新了一個不同的php.ini文件。我去了phpinfo()頁面上的php.ini文件目錄,並更新了'upload_max_filesize',它工作正常!謝謝您的幫助! – skelto