欢迎访问宙启技术站
智能推送

PHP上传文件函数:如何上传一个文件到服务器?

发布时间:2023-06-17 18:30:59

PHP是一种开放源码的脚本语言,适用于web开发。它广泛应用于跨平台的Web应用程序开发,是一种服务器端的语言。PHP具有处理表单和上传文件等Web开发所需的功能,可以非常方便地管理网站文件。以下是如何使用PHP上传文件的简单步骤。

步骤1: 创建一个表单

首先要创建一个表单。表单将包含一个文件上传标签。 HTML代码 :

<form action="upload.php" method="POST" enctype="multipart/form-data">

<!-- 注意:enctype 属性必须设置为 multipart/form-data, 这样浏览器才能正确把文件发送到 web 服务器 -->

    <input type="file" name="myfile">

    <input type="submit" name="submit" value="Upload">

</form>

步骤2: 创建PHP脚本

在表单中设置action属性后,需要创建一个PHP脚本来处理文件上传。 

PHP代码 :

 <!-- 上传文件目录 -->

 <?php

    $uploads_dir = 'uploads/'; //设置文件上传路径

    // 判断 uploads 目录是否存在

    if(!is_dir($uploads_dir)){ //不存在则创建

    mkdir($uploads_dir);

  }

  if(isset($_POST['submit'])){ //匹配提交按键名

    // 检查上传文件是否合法

    if(isset($_FILES['myfile']) && $_FILES['myfile']['error'] == 0){ //匹配上传文件名

      $file_name = $_FILES['myfile']['name']; //取上传文件的原始名称

      $file_tmp = $_FILES['myfile']['tmp_name']; //临时文件名称

      $file_size = $_FILES['myfile']['size']; //上传文件大小(以字节为单位)

      $file_type = $_FILES['myfile']['type']; //文件类型即 MIME

      // 自定义新文件名称

      $new_file_name = date('YmdHis').'_'.$file_name; 

      //移动上传文件的扩展名

      $file_ext = strtolower(pathinfo($new_file_name, PATHINFO_EXTENSION)); 

      // 获取允许上传的文件类型,并判断上传文件的类型是否允许

      $file_allowed = array('jpg', 'jpeg', 'png', 'gif'); //定义允许上传的文件扩展名

      if(in_array($file_ext, $file_allowed)){ //检测扩展名

        if($file_size < 5000000){ //上传文件大小限制(以字节为单位)

          // 把文件从临时目录移动到上传目录中,并使用新的文件名保存

          move_uploaded_file($file_tmp, $uploads_dir.$new_file_name);

          echo '上传成功!';

        }

      }

      else{

        echo '错误:上传的文件类型不允许!';

      }

    }

    else{

      echo '错误:上传文件失败!';

    }

  }

?>

步骤3: 执行上传

将表单上载到web服务器,在表单中选择要上传的文件并单击“上传”按钮。 即可上传文件并将其保存到web服务器上。

以上就是如何使用PHP上传一个文件到服务器的步骤。需要注意的是,上传文件时必须检查文件类型,大小和权限,并将其保存到正确的目录中。对上传的文件进行验证和检查,能够保证上传文件的安全,并减少不必要的麻烦。