php 实现文件上传的源代码

时间:2016-06-12
php 文件上是网站开发中经常遇到的一个需求,也是学习php必须掌握的一个知识点,本文章通过实例向大家讲解php如何实现文件上传到服务器,需要的朋友可以参考一下本文章。

我们先看下面的源代码:

<html>
 <head>
 <title>php 实现文件上传的源代码</title>
 </head>
 <body>
 <div>
 <?php
 if ( isset( $_FILES['fupload'] ) ) {

     print "name: ".     $_FILES['fupload']['name']       ."<br />";
     print "size: ".     $_FILES['fupload']['size'] ." bytes<br />";
     print "temp name: ".$_FILES['fupload']['tmp_name']   ."<br />";
     print "type: ".     $_FILES['fupload']['type']       ."<br />";
     print "error: ".    $_FILES['fupload']['error']      ."<br />";

     if ( $_FILES['fupload']['type'] == "image/gif" ) {

         $source = $_FILES['fupload']['tmp_name'];
         $target = "upload/".$_FILES['fupload']['name'];
         move_uploaded_file( $source, $target );// or die ("Couldn't copy");
         $size = getImageSize( $target );

         $imgstr = "<p><img width=\"$size[0]\" height=\"$size[1]\" ";
         $imgstr .= "src=\"$target\" alt=\"uploaded image\" /></p>";

         print $imgstr;
     }
 }
 ?>
 </div>
 <form enctype="multipart/form-data"
     action="<?php print $_SERVER['PHP_SELF']?>" method="post">
 <p>
 <input type="hidden" name="MAX_FILE_SIZE" value="102400" />
 <input type="file" name="fupload" /><br/>
 <input type="submit" value="upload!" />
 </p>
 </form>
 </body>
 </html>

下面对实例源码进行讲解:

这个实例中,我们使用表单form提交文件到服务器,注意,表单是提交给本页(action="<?php print $_SERVER['PHP_SELF']?>"),而且form的enctype属性要设置为multipart/form-data。当表单提交后,服务器接收表单file,然后通过php 服务器上传函数move_uploaded_file将文件上传到服务器并保存到相应的目录。这里向大家介绍php全局数组 $_FILES的一些值及意义。

  • $_FILES["file"]["name"] - 被上传文件的名称
  • $_FILES["file"]["type"] - 被上传文件的类型,通过这个变量,我们可以设置只能上传指定的文件类型。如本实例只允许上image/gif类型的文件。
  • $_FILES["file"]["size"] - 被上传文件的大小,以字节计
  • $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
  • $_FILES["file"]["error"] - 由文件上传导致的错误代码