【发布时间】:2014-03-19 06:28:56
【问题描述】:
文件上传适用于 windows 中的 xampp,但当我将其移至生产 centos 服务器时无法正常工作。它抛出“无效文件”错误。这是我正在使用的代码:
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
有人可以帮我解决这个问题........
【问题讨论】:
-
检查上传文件夹是否在生产服务器上具有写权限。
-
并检查 enctype="multipart/form-data" 这是否设置为您的表单标签。
-
@AbhikChakraborty 文件夹拥有 777 权限
-
@ripa Ya 它在那里........检查了它
-
替换 move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);与 move_uploaded_file($_FILES["file"]["name"], "upload/" . $_FILES["file"]["name"]); --- 试试这个,让我知道
标签: php linux file file-upload centos