我在使用php脚本上传文件时遇到了一些令人沮丧的问题。问题是我的脚本正在我的本地xampp服务器上运行。当我将它传输到我的strato主机服务器时,它将不再起作用。没有错误输出。在调试过程中,我发现$ _FILES数组是完全空的..它没有任何内容。
提交表单时, print_r($_POST)
和print_r($_FILES)
会显示以下内容:
Array
(
[submit] =>
)
Array
(
)
我的php.ini包含以下与文件上传相关的配置参数(由phpinfo()
验证):
file_uploads = On;
memory_limit = 128M;
post_max_size = 8M;
upload_max_filesize = 128M;
upload_tmp_dir = /tmp;
我尝试上传的文件未超过8MB post_max_size
的限制。
我的表单如下:
<form action="bilder.php" target="_self" method="post" enctype="multipart/form-data">
<input type="file" id="file" name="file" accept="image/*"/>
<button type="submit" name="submit" class="btn btn-primary">submit</button>
<button type="submit" name="delete" class="btn btn-danger">delete files</button>
</form>
除了身体因素外,没有任何东西围绕着它。
来自bilder.php
的我的php脚本已包含许多调试输出,如下所示:
ini_set ("display_errors", "1");
error_reporting(E_ALL);
//Das Upload-Verzeichnis
$upload_folder = 'uploads/bilder/';
echo "<pre>";
print_r(realpath($upload_folder)."\n");
echo isset($_POST["submit"]);
echo isset($_POST["delete"]);
print_r($_POST);
echo ("FILES=empty? ".empty($_FILES)."\n");
print_r($_FILES);
echo "</pre>";
if (!empty($_FILES) && isset($_POST["submit"]))
{
echo "file will be uploaded";
$new_path = uploadPicture("file", $upload_folder);
if ($new_path) {
$uploadMessage .= '<p class="alert alert-success"> File successfully uploaded </p>';
}
}
函数uploadPicture
检查并上载文件并返回保存在服务器上的路径。这是我从其他地方复制的标准脚本。这不应该导致我的问题,因为它永远不会在strato服务器上执行。
我的strato服务器配置一定有问题,但我无法弄清楚问题是什么。 php.ini
似乎是正确的。有人有想法吗?