【www.gdgbn.com--客户端相关打印】

PHP文件上传 move_uploaded_file

建立一个上传文件表格
为了让用户上传文件的形式可以是非常有益的。

看看下面的HTML表单的文件上传:




请注意以下的HTML表单上面:

该是enctype属性

标记指定的内容类型时使用的形式提交。 “多/形式的数据”时使用的一种形式,需要二进制数据,如文件内容,将上传
该类型= “文件”属性指定标记的投入应该是处理文件。例如,当观看在浏览器中,将有浏览按钮,旁边的输入栏位
注:允许用户上传文件是一个很大的安全风险。只允许受信任的用户进行文件上传。





创建上传脚本
该“ upload_file.php ”文件中包含的代码上传文件:

 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "
"; } else { echo "Upload: " . $_FILES["file"]["name"] . "
"; echo "Type: " . $_FILES["file"]["type"] . "
"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } ?>

利用全球的PHP变量$ _FILES阵列,您可以上传文件从用户端电脑到远程服务器。

第一个参数是表单的输入名称和第二指数可以是“姓名” , “类型” , “大小” , “ tmp_name ”或“错误” 。像这样:

变量$ _FILES [ “file” ] [ “name” ] -的名字上传的文件
变量$ _FILES [ “file” ] [ “type” ] -类型的上传文件
变量$ _FILES [ “file” ] [ “size” ] -大小以字节为单位的上传文件
变量$ _FILES [ “file” ] [ “ tmp_name ” ] -名称的临时副本的文件存储在服务器上
变量$ _FILES [ “file” ] [ “error” ] -错误代码造成的文件上传
这是一个非常简单的方式上传文件。出于安全原因,你应该补充什么限制,用户可以上传。


限制上传
在此脚本,我们添加一些限制文件上传。用户只能上传。 gif或。 JPEG文件和文件大小必须在20 kB的:


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"] . "
"; } else { echo "Upload: " . $_FILES["file"]["name"] . "
"; echo "Type: " . $_FILES["file"]["type"] . "
"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } } else { echo "Invalid file"; }
?>
 

注意:对于IE浏览器承认jpg文件类型必须pjpeg ,用于Firefox必须的jpeg 。




节能上传文件
上述范例建立一个临时副本上传的文件在PHP临时文件夹在服务器上。

临时复制的文件消失了的剧本时结束。存储上传的文件,我们需要将它复制到不同的位置:

 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "
"; } else { echo "Upload: " . $_FILES["file"]["name"] . "
"; echo "Type: " . $_FILES["file"]["type"] . "
"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
";
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";
  }
?>
以上脚本检查,如果文件已经存在,如果它不,它的文件拷贝到指定文件夹。 

注意:这个例子保存文件到一个新的文件夹中所谓的“上传”

本文来源:http://www.gdgbn.com/aspjiaocheng/17088/