当前位置:首页 > PHP教程 > php文件操作 > 列表

使用PHP接受文件并获得其后缀名的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-15 19:22:33 浏览: 评论:0 

这篇文章主要介绍了使用PHP接受文件并获得其后缀名的方法,作者着重提到了其中$_FILES全局变量的使用,需要的朋友可以参考下

HTML的form表单

用html的表单模拟一个文件上传的post请求,代码如下:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <title>File Upload</title>  
  6. </head>  
  7. <body>  
  8.    
  9. <form enctype="multipart/form-data" action="test.php" method="POST">  
  10.   <input type="hidden" name="MAX_FILE_SIZE" value="30000" />  
  11.   Send this File:<input name="userfile" type="file"/>  
  12.   <input type="submit" value="Send File" />  
  13. </form>  
  14.    
  15.    
  16. </body>  
  17. </html>  

注意:

要确保文件上传表单的属性是 enctype="multipart/form-data",否则文件上传不了

PHP

首先,需要解释一下PHP的全局变量$_FILES,此数组包含了所有上传的文件信息

$_FILE['userfile']['name'] : 客户端机器文件的原名称

$_FILE['userfile']['type'] : 文件的MIME类型

$_FILE['userfile']['size'] : 已上传的文件大小

$_FILE['userfile']['tmpname'] : 文件被上传后在服务器存储的临时文件名

$_FILE['userfile']['error'] : 和该文件上传的错误代码

思路

1、生成40位的随机字符串作为文件名

2、根据文件是图片还是语音转存到不同的文件位置

3、暂时不做文件大小和文件类型的校验

  1. function processFile($files$type) {  
  2.   $uploadName = null;  
  3.   foreach ($files as $name => $value) {  
  4.     $originalName = $value['name'];  
  5.     $arr = explode("."$originalName);  
  6.     $postfix = $arr[count($arr) - 1];  
  7.     $tmpPath = $value['tmp_name'];  
  8.     $tmpType = $value['type'];  
  9.     $tmpSize = $value['size'];  
  10.   }  
  11.      
  12.   $newname = EhlStaticFunction::generateRandomStr(40).".".$postfix;  
  13.      
  14.   switch ($type) {  
  15.     case 1 :   
  16.       // 处理声音文件  
  17.       $destination = VIDEOUPLOADDIR.$newname;  
  18.       break;  
  19.     case 2 :  
  20.       // 处理图像文件  
  21.       $destination = IMAGEUPLOADDIR.$newname;  
  22.       break;  
  23.   }  
  24.      
  25.   move_uploaded_file($tmpPath$destination);  
  26. }  

而获取所上传文件的后缀名则可以使用一下代码:

HTML

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5.   <title></title> 
  6.   <meta name="keywords" content=" keywords" /> 
  7.   <meta name="description" content="description" /> 
  8. </head> 
  9. <body> 
  10.   <form method="post" action="" enctype="multipart/form-data"> 
  11.   <input type="file" name="upfile" size="20" /> 
  12.   <input type="submit" name="submit" value="submit" /> 
  13.   </form> 
  14. </body> 
  15. </html> 

PHP

  1. <?PHP 
  2.   if(isset($_POST['submit'])) { 
  3.     $string = strrev($_FILES['upfile']['name']); 
  4.     $array = explode('.',$string); 
  5.     echo $array[0]; 
  6.   }   
  7. ?> 

Tags: PHP获得文件后缀名

分享到: