PHP - 文件上传不能在strato服务器上运行

时间:2016-06-10 11:31:04

标签: php apache web file-upload

我在使用php脚本上传文件时遇到了一些令人沮丧的问题。问题是我的脚本正在我的本地xampp服务器上运行。但当我将它转移到我的strato主机服务器时,它再也不能工作了。虽然我已将display_errors设置为on并将error_reporting设置为E_ALL,但没有错误输出。

这是我从w3school文件上传教程中复制的完整代码,存储在upload.php文件中:

<?php
$target_dir = "./uploads";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    print_r($_FILES);

    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }

    // Check if file already exists
    if (file_exists($target_file)) {
        echo "Sorry, file already exists.";
        $uploadOk = 0;
    }
    // Check file size
    if ($_FILES["fileToUpload"]["size"] > 500000) {
        echo "Sorry, your file is too large.";
        $uploadOk = 0;
    }

    // Check if $uploadOk is set to 0 by an error
    if ($uploadOk == 0) {
        echo "Sorry, your file was not uploaded.";
    // if everything is ok, try to upload file
    } else {
        if (copy($_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.";
        }       
    }
}
?>
<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

每次提交后脚本的输出是:

  

Array()文件不是image.Sorry,文件已经存在。谢谢,你的   文件未上传。

正如您所看到的,$ _FILES数组是完全空的..无论我上传什么类型的文件。

我检查了我的php.ini以及phpinfo()以获取相关的配置参数。这就是我得到的:

file_uploads = On;
memory_limit = 128M;
post_max_size = 128M;
upload_max_filesize = 128M;
upload_tmp_dir = /tmp;

我尝试上传的文件当然没有超过128MB的限制。

脚本本身不应该导致我的问题,因为它适用于我的本地XAMPP服务器以及许多其他用户和服务器。我的strato服务器配置一定有问题,但我无法弄清问题是什么。 php.ini似乎是怀特。有没有人有想法,线索或者只是暗示?

先谢谢。

0 个答案:

没有答案