好的,所以我在.html页面和.php页面上创建了一个表单来上传图像,然后从表单中保存som数据以及图像的文件路径。问题是当我将它从根文件夹移动到root / backweb时它不会工作。我在backweb文件夹中创建了一个新的uploads文件夹,并且为了简单起见,还将conn.inc.php文件复制到了backweb文件夹中。
当我从根本上运行它时,它说“释放sparades!” (已保存发布)但是当我从backweb服务器运行它时,它会显示“Ogiltig filtyp!...”(文件类型无效)。有什么想法吗?
以下是代码:
<?
require_once 'conn.inc.php';
if (($_FILES["cover"]["type"] == "image/gif")
|| ($_FILES["cover"]["type"] == "image/png")
|| ($_FILES["cover"]["type"] == "image/jpeg")
|| ($_FILES["cover"]["type"] == "image/pjpeg"))
{
if ($_FILES["cover"]["error"] > 0)
{
echo "Return Code: " . $_FILES["cover"]["error"] . "<br />";
}
else
{
if (file_exists("uploads/" . $_FILES["cover"]["name"]))
{
echo $_FILES["cover"]["name"] . " finns redan på servern. ";
}
else
{
move_uploaded_file($_FILES["cover"]["tmp_name"],
"uploads/" . $_FILES["cover"]["name"]);
$cover = "uploads/" . $_FILES["cover"]["name"];
}
}
}
else
{
echo "Ogiltig filtyp! Endast bilder är tillåtna (.jpg, .png och .gif)</br>
<a href=\"uploadform.html\">Försök igen</a>";
}
$band = $_REQUEST["band"];
$title = $_REQUEST["title"];
$catnum = $_REQUEST["catnum"];
$format = $_REQUEST["format"];
$query = "INSERT INTO releases (band,title,catnum,format,cover) VALUES ('$band','$title','$catnum','$format','$cover')";
$result = mysql_query($query);
if ($result == NULL)
{
echo "Något gick fel, releasen sparades ej!";
?>
<br/>
<br/>
<a href="editreleases.php">Försök igen!</a>
<?
}
else
{
echo "Releasen sparades!";
}
?>
答案 0 :(得分:1)
您必须提供正确的目录路径,即
if (file_exists("../uploads/" . $_FILES["cover"]["name"]))
VS
if (file_exists("uploads/" . $_FILES["cover"]["name"]))
答案 1 :(得分:0)
声音文件夹权限没有设置为PHP访问非根文件夹中的文件
答案 2 :(得分:0)
也许您应该使用is_uploaded_file
代替file_exists
?并使用$_FILES["cover"]["tmp_name"]
作为文件的路径。 PHP手册中的示例:
if (is_uploaded_file($_FILES['userfile']['tmp_name']))
{
echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
echo "Displaying contents\n";
readfile($_FILES['userfile']['tmp_name']);
}
else
{
echo "Possible file upload attack: ";
echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}
另外,正如@trailmax所说,检查PHP是否可以实际访问上传的文件夹文件。