Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php在服务器上上载图像,但它不';不存在于服务器上_Php_Image_File_Upload - Fatal编程技术网

使用php在服务器上上载图像,但它不';不存在于服务器上

使用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

我真的很困惑,我有这个图像上传代码,它在我的家庭服务器“Xampp”上运行良好,当我点击上传按钮时,它上传图像并发送到上传文件夹,但当我上传这个php和html页面到服务器上,工作正常,但它不能保存图像上传到服务器上的文件夹,请帮助我。谢谢

你可以在我的网站上试试

这里是HTML文件

<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*/)将图像从临时文件夹移动到永久文件夹。