Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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_Html_File Upload - Fatal编程技术网

Php 这个文件上传有什么问题?

Php 这个文件上传有什么问题?,php,html,file-upload,Php,Html,File Upload,我无法将此代码用于表单上载视频文件: <form action="upload.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

我无法将此代码用于表单上载视频文件:

<form action="upload.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>

文件名:

这是upload.php:

<?php
if ($_FILES["file"]["size"] < 2000000000)
  {
  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("videos/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "videos/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "videos/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?> 

虽然您的问题不清楚,但您可以检查以下事项:

1) PHP可以写入tempdirectory吗

这是PHP接收文件时存储文件的地方。它将被摧毁 当脚本结束时,您的脚本负责将其移出 在它结束之前

2) PHP可以写入targetdirectory吗

您确定PHP有权在targetdirectory中写入吗

也检查一下。特别是,检查
php\u value upload\u max\u filesize 20M
是否符合您上传的文件大小。

仔细想想,我认为更好的解决方案是在系统上安装两个php副本。只有一个人可以处理这些上传。通过这种方式,您可以设置这些荒谬的php.ini值,而不会对主服务器产生不利影响。您可能不需要第二台web服务器来执行此操作,我认为有一种方法可以通过运行CLI将这些参数传递给辅助php安装

这对于你的需求来说可能太复杂了,但它可能会帮助其他人。另外,我希望看到一些关于这种方法的反馈


您需要在php.ini中更改这些参数

post_max_size = 2100M
upload_max_filesize = 2100M
file_uploads = 1
memory_limit = 2200M

请记住,增加这些限制可能会导致内存泄漏,使服务器崩溃,并使服务器容易受到大量攻击。

请澄清“不能”。有错误吗?您是否尝试过任何调试?此外,您是否具有服务器的root访问权限?这是PHP上载中最常见的问题。不要忘记在您的Web服务器配置(例如Apache、IIS)中增加最大post大小。