使用php在服务器上上载图像,但它不';不存在于服务器上
我真的很困惑,我有这个图像上传代码,它在我的家庭服务器“Xampp”上运行良好,当我点击上传按钮时,它上传图像并发送到上传文件夹,但当我上传这个php和html页面到服务器上,工作正常,但它不能保存图像上传到服务器上的文件夹,请帮助我。谢谢 你可以在我的网站上试试 这里是HTML文件使用php在服务器上上载图像,但它不';不存在于服务器上,php,image,file,upload,Php,Image,File,Upload,我真的很困惑,我有这个图像上传代码,它在我的家庭服务器“Xampp”上运行良好,当我点击上传按钮时,它上传图像并发送到上传文件夹,但当我上传这个php和html页面到服务器上,工作正常,但它不能保存图像上传到服务器上的文件夹,请帮助我。谢谢 你可以在我的网站上试试 这里是HTML文件 <html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"&g
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
文件名:
这是一个PHP文件
<?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"] <= 200000)
&& 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"] / 10024) . " 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";
}
chmod("upload", 0644);
?>
如果它在本地服务器上工作,但在生产服务器上不工作,则需要确保该文件夹存在于生产服务器上,并且可以通过执行PHP脚本的用户帐户写入该文件夹。我想您是从的此链接获得此PHP脚本的。这个php脚本在if条件中有两个额外的括号。删除这些额外的括号
if (/*removed*/($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/x-png")// removed
&& ($_FILES["file"]["size"] < 200000)
&& in_array($extension, $allowedExts))
if(/*已删除*/($_文件[“文件”][“类型”]==“图像/gif”)
||($_文件[“文件”][“类型”]=“图像/jpeg”)
||($_文件[“文件”][“类型”]=“图像/jpg”)
||($_文件[“文件”][“类型”]=“图像/pjpeg”)
||($_文件[“文件”][“类型”]=“图像/png”)
||($_FILES[“file”][“type”]==“image/x-png”)//已删除
&&($_文件[“文件”][“大小”]<200000)
&&in_数组($extension$allowedExts))
这对我有用。希望它也能对你有用。我认为你需要更多的验证。您可以使用getimagesize()函数检查上传图像的宽度、高度、MIME类型和属性。“您可以在我的网站上试用”—嗯。。。否。发布您的代码。检查文件/文件夹权限设置以及您的最大上载大小等。太多的事情可能会出错,而且很多事情都会同时出错。
chmod(“上载”,0644)代码>尝试删除它或使用chmod(“上传”,0777)代码>或chmod(“上传”,0755)
尝试了这两种代码,但仍然不起作用@Fred ii chmod仅在执行结束时发生。尝试通过FTP进行chmod'ing并从代码中删除该部分。另外,请确保子文件夹存在以开始。作为测试,请将其chmod到777,然后查看是否可以上载到它。(不要把它挂在777,这很危险;就在你测试的时候)仍然不工作:(实际上代码是正确的,但当我点击upload时,它会给我以下数据upload:23.jpg类型:image/jpeg大小:6.4533120510774 kB临时文件:/tmp/phpv3iNxw存储在:upload/23.jpg
中,但当我检查upload文件夹中的文件时,它不会存在检查您的文件夹名称是否正确。现在先删除所有验证,仅检查是否正确。)图像是否正在上载。只需使用move_upload_file(/**如果您写得正确,则不是move_upload_file*/)将图像从临时文件夹移动到永久文件夹。