使用php将php文件上载到服务器

使用php将php文件上载到服务器,php,file-upload,upload,Php,File Upload,Upload,我有下面的代码。。。这是表单上传的第二个文件,但我一直收到一个错误。我正在尝试上载一个.php文件。我用同样的代码上传了一个.jpg,效果很好 $allowedExts = array("php"); $temp = explode(".", $_FILES["file2"]["name"]); $extension = end($temp); if ((($_FILES["file2"]["type"] == "image/php")) && in_array($extens

我有下面的代码。。。这是表单上传的第二个文件,但我一直收到一个错误。我正在尝试上载一个.php文件。我用同样的代码上传了一个.jpg,效果很好

 $allowedExts = array("php");
$temp = explode(".", $_FILES["file2"]["name"]);
$extension = end($temp);
if ((($_FILES["file2"]["type"] == "image/php"))
&& in_array($extension, $allowedExts))
  {

  if ($_FILES["file2"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file2"]["error"] . "<br>";
    }
  else
    {
    echo "<br /><br />Upload: " . $_FILES["file2"]["name"] . "<br>";
    echo "Type: " . $_FILES["file2"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file2"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file2"]["tmp_name"] . "<br>";

    if (file_exists("trip/" . $_FILES["file2"]["name"]))
      {
      echo $_FILES["file2"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file2"]["tmp_name"],
      "trip/" . $_FILES["file2"]["name"]);
      echo "Stored in:" . "trip/" . $_FILES["file2"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file2";
  }
$allowedExts=array(“php”);
$temp=explode(“.”,$_文件[“文件2”][“名称”]);
$extension=end($temp);
如果(($_FILES[“file2”][“type”]=“image/php”))
&&in_数组($extension$allowedExts))
{
如果($\u文件[“文件2”][“错误”]>0)
{
回显“返回代码:”.$\u文件[“文件2”][“错误”]。
; } 其他的 { echo“

上传:“.$\u文件[“文件2”][“名称”]。”
”; 回显“类型:”.$\u文件[“文件2”][“类型”]。
”; 回显“大小:”($_文件[“文件2”][“大小”]/1024)。“kB
”; 回显“临时文件:.”文件[“文件2”][“tmp_名称”]。“
”; 如果(文件u存在(“trip/”$\u文件[“file2”][“name”])) { echo$\u文件[“文件2”][“名称”]。“已存在。”; } 其他的 { 移动上传的文件($文件[“文件2”][“tmp文件名”], “trip/”$_文件[“file2”][“name”]); echo“存储在:“.trip/”$_文件[“file2”][“name”]; } } } 其他的 { 回显“无效文件2”; }
上传.php文件确实不安全,我不建议这样做。
但是,如果您真的想这样做是为了学习或任何其他原因,错误如下:

"image/php"
PHP的MIME类型不是
“image/PHP”
。请尝试
“text/php”

删除此选项

if ((($_FILES["file2"]["type"] == "image/php"))
&& in_array($extension, $allowedExts))
{
或者正确编写扩展,因为没有带有php扩展的图像

会是这样的

if (
($_FILES["file2"]["type"] == "image/jpeg")
($_FILES["file2"]["type"] == "text/php")
)
{

这里的图像有jpeg、png等扩展名,。。。文本有php、html等扩展名,可以用一种形式上传两个文件?真是个坏主意。。。这就像给胖人留下蛋糕一样…@user3015838 No.允许用户将php文件上传到您的服务器。另外,我上次检查时发现,
image/php
不是有效的MIME类型。啊,这只是为了让更新更容易。会有密码保护等