问题描述
我正在尝试使用 PHP 7.3 FPM 和 Nginx 上传文件,但它不起作用。奇怪的是,在我的本地主机上这是有效的(只要我更改文件上传路径之类的东西)。我的 PHPinfo()
说文件上传已开启。我的 index.PHP 是
<html>
<body>
<form action = "upload.PHP" method="POST" enctype="mutipart/form-data">
<input type="file" name="file">
<button type="submit" name="submit">Upload</button>
</body>
</html>
它所在的目录是/var/www/html/然后我的上传目录是/var/www/html/uploads/我的upload.PHP是
<?PHP
if (isset($_POST["submit"])) {
$file = $_FILES["file"];
$fileName = $_FILES["file"]["name"];
$upload_folder = "/var/www/html/uploads/";
move_uploaded_file($_FILES["file"]["tmp_name"],$upload_folder.$_FILES["file"]["name"]);
}
当我输入 echo print_r($file)
时,它返回 1。知道出了什么问题吗?
解决方法
我相信您正在将文件直接上传到您的网络文件夹下的“上传”文件夹。
- 确保已在服务器中创建了上传文件夹
- 确保uploads文件夹是允许写的(php上传的文件归www-data组所有)
- 请使用相对路径(在托管环境中绝对路径可能被禁止(或与您的本地主机路径完全不同))。因此改变
$upload_folder = "/var/www/html/uploads/";
到
$upload_folder = "./uploads/";