我无法将(.OBJ)文件上传到服务器并获得“错误1”意味着
上传的文件超出了php.ini
中的upload_max_filesize指令
我从此页面获得了此信息 - http://php.net/manual/en/features.file-upload.errors.php
然后我转到php.ini文件并将upload_max_filesize
和post_max_size
更改为 10000M 。
当我尝试上传文件时,我仍然得到'错误1',即使它只有3MB。我还重新启动了服务器,以便我对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文件的相应变量,为什么我不能上传所需的文件?
答案 0 :(得分:1)
您必须重新启动Webserver:
service apache restart #If you have Apache
service nginx restart #If you have NGINX
如果你正在运行php-fpm:
service php-fpm restart
你有多个php.ini吗? 请注意:
/etc/php/php-fpm
/etc/php/php-cli
/etc/php/php-cgi
在某些情况下,您还必须在网络服务器上允许更大的文件上传。
NGINX:
client_max_body_size 10000M;
答案 1 :(得分:0)
Jquery ajax从客户端转移到仅切断数据,而不是文件。如果要使用jquery ajax传输文件,请尝试此jquery extended library。我之前使用过它并且工作正常。