Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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_File_Upload_Ftp_Save - Fatal编程技术网

PHP文件上传不保存文件

PHP文件上传不保存文件,php,file,upload,ftp,save,Php,File,Upload,Ftp,Save,我想写一个PHP上传程序,将文件保存到我的FTP上 我发现这个脚本: <?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

我想写一个PHP上传程序,将文件保存到我的FTP上

我发现这个脚本:

<?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";
  }
?>
但是我在FTP上找不到文件


我做错了什么?

请检查move\u上传的\u文件的返回值。如果文件名不是有效的上载文件,或者移动文件内容时出错,move_uploaded_file将返回false。

请检查move_uploaded_file的返回值。如果文件名不是有效的上载文件,或者移动文件内容时出现问题,则move_uploaded_file将返回false。

请查看以下内容: 您需要在尝试移动文件时进行一些错误处理,因为在实际尝试移动文件之前,您目前只检查
IF$\u FILES[“file”][“error”]>0

因此,在移动临时文件之前,您的代码只确认临时文件上没有错误

请从以下方面考虑这些陈述:

如果文件名不是有效的上载文件,则不会执行任何操作,并且 move\u上传的\u file()将返回FALSE

如果文件名是有效的上载文件,但某些文件无法移动 原因是,不会发生任何操作,并且将返回move\u上传的\u file() 错。此外,将发出警告

因此,在使用临时文件之前,您可以正确地检查临时文件是否正常且没有错误,但您还需要从
move\u upload\u file()
函数中捕获错误,以确保移动是正确的还是错误的

执行以下操作(我刚刚修改了您的代码,在
移动上传的文件()
周围添加了一个IF)

然后错误数组应该输出出错的内容。Ie(可能)上传错误无法写入。然后,这将向您指出问题所在,而且在代码中添加这样的内容也是很好的,因此您的脚本将优雅地失败,而不是什么都没有发生(不应该出现什么都没有发生的情况!)

请看一下: 您需要在尝试移动文件时进行一些错误处理,因为在实际尝试移动文件之前,您目前只检查
IF$\u FILES[“file”][“error”]>0

因此,在移动临时文件之前,您的代码只确认临时文件上没有错误

请从以下方面考虑这些陈述:

如果文件名不是有效的上载文件,则不会执行任何操作,并且 move\u上传的\u file()将返回FALSE

如果文件名是有效的上载文件,但某些文件无法移动 原因是,不会发生任何操作,并且将返回move\u上传的\u file() 错。此外,将发出警告

因此,在使用临时文件之前,您可以正确地检查临时文件是否正常且没有错误,但您还需要从
move\u upload\u file()
函数中捕获错误,以确保移动是正确的还是错误的

执行以下操作(我刚刚修改了您的代码,在
移动上传的文件()
周围添加了一个IF)


然后错误数组应该输出出错的内容。Ie(可能)上传错误无法写入。然后,这将向您指出问题所在,而且在您的代码中包含这一点也很好,因此您的脚本将优雅地失败,而不是什么都没有发生(不应该出现什么都没有发生的情况!)

所以解决方案是设置权限0775…

所以解决方案是设置权限0775…

,您绝对肯定,对
上传/
目录有写入权限?那么这个问题解决了吗?如果是这样的话,你应该自己选择一个答案或添加一个答案,然后选择那个答案。而且你绝对肯定,
upload/
目录有写权限?那么这个问题解决了吗?如果是这样的话,你应该选择一个答案,或者自己添加一个,然后选择那个答案。代码运行得很好。当我测试它时,它会按预期上传文件,在我确保了写权限并将
$\u files[“file”][“size”]<20000)
更改为更正常/更大的值:-)代码工作正常。当我测试它时,在我确保了写权限并将
$\u files[“file”][“size”]<20000)
更改为更正常/更大的值后,它会按预期上传文件:-)
Upload: bier15291.jpg
Type: image/jpeg
Size: 158.26171875 kB
Temp file: /mnt/shared/tmp/php_0aOep
Stored in: upload/bier15291.jpg
   if (file_exists("upload/" . $_FILES["file"]["name"]))
     {  
       echo $_FILES["file"]["name"] . " already exists. ";
     }
   else
     {
       if (move_uploaded_file($_FILES["file"]["tmp_name"],
       "upload/" . $_FILES["file"]["name"]))
         {
           echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
         }
       else
         {
           //output the errors here (ie using $_FILES["file"]["error"])
         }
      }