PHP - 文件上传

PHP - 文件上传 首页 / PHP入门教程 / PHP - 文件上传

PHP脚本可以与HTML表单一起使用,以允许用户将文件上传到服务器。最初,文件被上传到临时目录,然后通过PHP脚本重定位到目标位置。

phpinfo.php 页中的信息将用于文件上传的临时目录描述为 upload_tmp_dir ,将允许上传的最大文件大小表示为 upload_max_filesize 。这些参数设置在PHP配置文件 php.ini 中

创建上传表单

下面的以下HTM代码创建一个上载器表单。此表单的方法属性设置为 post ,而enctype属性设置为 multipart/form-data

<?php
   if(isset($_FILES['image'])){
      $errors= array();
      $file_name=$_FILES['image']['name'];
      $file_size =$_FILES['image']['size'];
      $file_tmp =$_FILES['image']['tmp_name'];
      $file_type=$_FILES['image']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
      
      $extensions= array("jpeg","jpg","png");
      
      if(in_array($file_ext,$extensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }
      
      if($file_size > 2097152){
         $errors[]='File size must be excately 2 MB';
      }
      
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,"images/".$file_name);
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>
<html>
   <body>
      
      <form action="" method="POST" enctype="multipart/form-data">
         <input type="file" name="image" />
         <input type="submit"/>
      </form>
      
   </body>
</html>

它将产生以下输出-

Upload Form

创建上传脚本

有一个名为 $_ FILES 的全局PHP变量,此变量是关联的二维数组,保留与上载文件有关的所有信息。因此,如果在上传形式中分配给输入的name属性的值为 file ,则PHP将创建以下五个变量-

  • $_ FILES ['file'] ['tmp_name']  - Web服务器上临时目录中的上载文件。

  • $_ FILES ['file'] ['name']            - 上载文件的实际名称。

  • $_ FILES ['file'] ['size']               - 上载文件的字节大小。

  • $_ FILES ['file'] ['type']              - 上载文件的MIME类型。

  • $_ FILES ['file'] ['error']             - 与该文件上传相关的错误代码。

下面的示例应允许上传图像,并返回输出作为上传文件信息。

<?php
   if(isset($_FILES['image'])){
      $errors= array();
      $file_name=$_FILES['image']['name'];
      $file_size=$_FILES['image']['size'];
      $file_tmp=$_FILES['image']['tmp_name'];
      $file_type=$_FILES['image']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
      
      $extensions= array("jpeg","jpg","png");
      
      if(in_array($file_ext,$extensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }
      
      if($file_size > 2097152) {
         $errors[]='File size must be excately 2 MB';
      }
      
      if(empty($errors)==true) {
         move_uploaded_file($file_tmp,"images/".$file_name);
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>
<html>
   <body>
      
      <form action="" method="POST" enctype="multipart/form-data">
         <input type="file" name="image" />
         <input type="submit"/>
			
         <ul>
            <li>Sent file: <?php echo $_FILES['image']['name'];  ?>
            <li>File size: <?php echo $_FILES['image']['size'];  ?>
            <li>File type: <?php echo $_FILES['image']['type'] ?>
         </ul>
			
      </form>
      
   </body>
</html>

它将产生以下输出-

Upload Script

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术与商业案例解读 -〔徐飞〕

左耳听风 -〔陈皓〕

赵成的运维体系管理课 -〔赵成〕

说透中台 -〔王健〕

Netty源码剖析与实战 -〔傅健〕

罗剑锋的C++实战笔记 -〔罗剑锋〕

Go 语言项目开发实战 -〔孔令飞〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

AI大模型系统实战 -〔Tyler〕

好记忆不如烂笔头。留下您的足迹吧 :)