我正在制作一个网站,它需要一个用户上传的音频文件,在我的服务器上混合并下载回用户的设备,但它不会再上传文件。最初我在我的Windows服务器上运行网站,但由于某种原因,它很难获得SSL证书,所以我不得不在Linux RHE上从头开始构建它。为了简化这个问题,我得到了一个基本的文件上传脚本,它也可以在我的Windows端口上工作,但不能在这个服务器上工作。我得到的唯一回应是“错误移动上传的文件!”,意思是与我假设的/tmp目录有关,并且无法从那里移动它?我看了一下目录,它几乎是空的,不是上传的文件。这里是代码。
`<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Check if the file was uploaded without errors
if (isset($_FILES['file']) && $_FILES['file']['error'] === UPLOAD_ERR_OK) {
// Get the temporary filename
$tempFile = $_FILES['file']['tmp_name'];
$targetDir = '/var/www/html/';
$targetFile = $targetDir . basename($_FILES['file']['name']);
if (move_uploaded_file($tempFile, $targetFile)) {
echo 'File uploaded and moved successfully.'; //I get this error
} else {
echo 'Error moving the uploaded file.';
}
} else {
echo 'Error uploading file. Error code: ' . $_FILES['file']['error'];
}
}
?>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">Upload</button>
</form>`
我在windows上测试了同样的代码(当然是用不同的目录),它工作正常。我更改了/tmp目录中的权限,chown,chmod..我用$_FILES ['file']['error']打印错误,返回“0”,表示没有错误。
预期的结果应该是一个“文件上传成功”,文件上传到websites目录,以便其他代码混合它。
1条答案
按热度按时间o8x7eapl1#
可能是目标路径有问题,我们必须修改
/var/www/html/
的权限另一个可能的问题是,您正在使用原始文件名,如果已经有同名文件,则可能会导致错误。