为什么文件上载php脚本在新服务器上不起作用?

为什么文件上载php脚本在新服务器上不起作用?,php,forms,upload,server,Php,Forms,Upload,Server,我把一个在免费服务器上运行的PHPSRCIPT移到了我自己的服务器(raspberry pi上的Apache2)上,它不再工作了。您将在下面找到脚本-它返回“抱歉,上载文件时出错。” 我不知道是什么原因造成的。以下是我尝试/观察到的大多数事情: 我的raspberry pi服务器上的文件夹受密码保护。我删除了密码,但没有结果 我的服务器在路由器后面,转发工作正常。我可以从本地网络内外访问我上传的任何内容 ini允许上传文件 文件_upload.php: <?php $target_di

我把一个在免费服务器上运行的PHPSRCIPT移到了我自己的服务器(raspberry pi上的Apache2)上,它不再工作了。您将在下面找到脚本-它返回“抱歉,上载文件时出错。”

我不知道是什么原因造成的。以下是我尝试/观察到的大多数事情:

  • 我的raspberry pi服务器上的文件夹受密码保护。我删除了密码,但没有结果
  • 我的服务器在路由器后面,转发工作正常。我可以从本地网络内外访问我上传的任何内容
  • ini允许上传文件
文件_upload.php:

<?php
$target_dir = "upload/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 2000000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "JPG, JPEG, PNG or GIF.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Error.";
  }
// if everything is ok, try to upload file
else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?> 


检查php ini上传参数。这些参数的限制可能比以前的更小。我认为该文件甚至不存在,您是否有权限访问它?如果文件已上传,但无法移动,
move\u uploaded\u file
除了返回false外,还会发出警告。确保捕获该警告以查看其内容。很可能是您对目标目录没有权限,或者该目录不存在。您写入的文件夹未为运行httpd的用户启用写入功能。检查您的存储文件夹权限我应该试试chmod 757,对吗?