php实现文件上传到服务器(含代码)-php教程

资源魔 39 0

php完成文件上传到效劳器(含代码)

创立一个文件上传表单

容许用户从表单上传文件长短常有用的。

请看上面这个供上传文件的 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>

请注意以下无关此表单的信息:

<form> 标签的 enctype 属性规则了正在提交表单时要应用哪一种内容类型。正在表单需求二进制数据时,比方文件内容,请应用 "multipart/form-data"。

<input> 标签的 type="file" 属性规则了应该把输出作为文件来解决。举例来讲,当正在阅读器中预览时,会看到输出框旁边有一个阅读按钮。

正文:容许用户上传文件是一个微小的平安危险。请仅仅容许可托的用户执行文件上传操作。

创立上传剧本

"upload_file.php" 文件含有供上传文件的代码:

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_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 "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>

经过应用 PHP 的全局数组 $_FILES,你能够从客户较量争论机向近程效劳器上传文件。

第一个参数是表单的 input name,第二个下标能够是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:

$_FILES["file"]["name"] - 被上传文件的称号$_FILES["file"]["type"] - 被上传文件的类型$_FILES["file"]["size"] - 被上传文件的巨细,以字节计$_FILES["file"]["tmp_name"] - 存储正在效劳器的文件的暂时正本的称号$_FILES["file"]["error"] - 由文件上传招致的谬误代码

这是一种十分简略文件上传形式。基于平安方面的思考,您该当添加无关甚么用户有权上传文件的限度。

上传限度

正在这个剧本中,咱们添加了对文件上传的限度。用户只能上传 .gif 或 .jpeg 文件,文件巨细必需小于 20 kb:

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Error: " . $_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 "Stored in: " . $_FILES["file"]["tmp_name"];
    }
  }
else
  {
  echo "Invalid file";
  }
?>

保留被上传的文件

下面的例子正在效劳器的 PHP 暂时文件夹创立了一个被上传文件的暂时正本。

这个暂时的复制文件会正在剧本完结时隐没。要保留被上传的文件,咱们需求把它拷贝到另外的地位:

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  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";
  }
?>

下面的剧本检测了能否已存正在此文件,假如没有存正在,则把文件拷贝到指定的文件夹。

正文:这个例子把文件保留到了名为 "upload" 的新文件夹。

从数组的第三个元素开端掏出,并前往数组中的其他元素:

<?php
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,2));
?>

感激各人的浏览,心愿各人收益多多。

原文链接: https://www.cnblogs.com/yszr/p/10522067.html

保举教程:《php教程》

以上就是php完成文件上传到效劳器(含代码)的具体内容,更多请存眷资源魔其它相干文章!

标签: php 文件上传 php开发教程 php开发资料 php开发自学

抱歉,评论功能暂时关闭!