我有一个php脚本,该脚本是在Internet的大量帮助下编写的,我不完全了解发生了什么。 这是一个上传工具,应该将上传到我的网站的文件发送到服务器上名为“上传”的文件夹中。 当我使用xampp时,它可以很好地工作,但是当我在我的大学提供给我的远程服务器上运行它时,脚本会将文件保存在其根文件夹中,而不是将其发送到我在此处创建的“上载”文件夹中。
我尝试以不同的方式指定目录,但是由于它可以在我的计算机上运行,而不能在大学服务器上运行,所以我不知道该怎么做。 高校服务器可与apache2配合使用,在我的计算机上,我使用最新版本的xampp进行本地测试。
index.html和upload.php位于同一文件夹中,两台计算机上都有一个名为“ uploads”的子文件夹。
<?php
if(isset($_POST['submit'])){
$file = $_FILES['file'];
$fileName = $_FILES['file']['name'];
$fileTmpName = $_FILES['file']['tmp_name'];
$fileSize = $_FILES['file']['size'];
$fileError = $_FILES['file']['error'];
$fileType = $_FILES['file']['type'];
$fileExt=explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$allowed = array('cvs');
if(in_array($fileActualExt, $allowed)) {
if($fileError === 0){
if($fileSize < 100000){
$fileNameNew = uniqid('', true).".".$fileActualExt;
$fileDestination = 'uploads/'.$fileNameNew;
move_uploaded_file($fileTmpName, $fileDestination);
header("Location: index.php?uploadsuccess");
} else {
echo "Your file is too big!";
}
} else {
echo "There was an error uploading your file!";
}
} else {
echo "You cannot upload files of this type!";
}
}
?>
我希望文件可以上传,但它们与脚本位于同一文件夹中。
答案 0 :(得分:1)
尝试在文件路径之前添加__DIR __:
$fileDestination = __DIR__.'/uploads/'.$fileNameNew;
如果“ uploads”文件夹和upload.php文件位于同一位置,则此方法应该起作用。否则,您将必须修改分配的中间部分('/ uploads /')才能导航到正确的目录。
此外,遇到类似问题,请参见this similar post