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

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

  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>File Upload</title>
  </head>
  <body> 

  <form enctype="multipart/form-data" action="test.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    Send this File:<input name="userfile" type="file"/>
    <input type="submit" value="Send File" />
  </form> 

  </body>
  </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、暂时不做文件大小和文件类型的校验

 

  function processFile($files, $type) {
    $uploadName = null;
    foreach ($files as $name => $value) {
      $originalName = $value['name'];
      $arr = explode(".", $originalName);
      $postfix = $arr[count($arr) - 1];
      $tmpPath = $value['tmp_name'];
      $tmpType = $value['type'];
      $tmpSize = $value['size'];
    } 

    $newname = EhlStaticFunction::generateRandomStr(40).".".$postfix; 

    switch ($type) {
      case 1 :
        // 处理声音文件
        $destination = VIDEOUPLOADDIR.$newname;
        break;
      case 2 :
        // 处理图像文件
        $destination = IMAGEUPLOADDIR.$newname;
        break;
    } 

    move_uploaded_file($tmpPath, $destination);
  }

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

HTML

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

PHP

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

结果示例:

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
接受文件
php 获得文件后缀名、java 获得文件后缀名、file获得后缀名、php获取文件后缀名、php文件后缀名,以便于您获取更多的相关知识。

时间: 2024-11-05 14:45:51

使用PHP接受文件并获得其后缀名的方法_php技巧的相关文章

php一行代码获取文件后缀名实例分析_php技巧

本文实例讲述了php一行代码获取文件后缀名的方法.分享给大家供大家参考.具体方法分析如下: php中一行代码获取文件后缀名的方法要结合很多的函数了,我们这个有点像asp中的函数了,下面来一起看看吧. 实例: 复制代码 代码如下: $filename  = 'D:/wamp/www/sparkphp/rar'; $rs =  strtolower(trim(substr(strrchr($filename, "."), 1))); 详解: strrchr()函数查找字符串在另一个字符串中

BCB中选择文件对话框TOpenDialog过滤后缀名使用方法

BCB中使用TOpenDialog选择对话框时,直接OpenDialog->Execute()弹出的对话框是显示所有文件的,如果我们希望过滤指定的文件后缀名就需要在Execute()前做一些初始化工作,此处主要使用Filter属性.代码如下:[喝小酒的网摘]http://blog.hehehehehe.cn/a/8453.htm 只显示txt文本文件.OpenDialog1->Filter = "Text files (*.txt)|*.TXT"; 多个下拉框,可只显示tx

php从给定url获取文件扩展名的方法_php技巧

本文实例讲述了php从给定url获取文件扩展名的方法.分享给大家供大家参考.具体实现方法如下: <?php /** * 给定url,获取文件后缀 * @param string $url * @return string */ function getUrlPostfix ($url) { $url_arr = explode('.', $url); $postfix = $url_arr[count($url_arr) - 1]; $substr = substr($postfix, 0, 3

PHP统计目录中文件以及目录中目录大小的方法_php技巧

本文实例讲述了PHP统计目录中文件以及目录中目录大小的方法.分享给大家供大家参考,具体如下: <?php //循环遍历目录中所有的文件,并统计目录和文件的大小 $dirName="phpMyAdmin"; $dir=opendir($dirName); //返回一个资源类型 while($fileName=readdir($dir)){ $file=$dirName."/".$fileName; if($fileName!="." &

PHP从FLV文件获取视频预览图的方法_php技巧

本文实例讲述了PHP从FLV文件获取视频预览图的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php // references http://www.longtailvideo.com/support/forum/Modules/12661/External-PHP-with-FFmpeg-using-readfile- // generate a preview image from an FLV file on-the-fly, or to save // ca

PHP对文件夹递归执行chmod命令的方法_php技巧

本文实例讲述了PHP对文件夹递归执行chmod命令的方法.分享给大家供大家参考.具体分析如下: 这里对文件夹和文件递归执行chmod命令来改变执行权限 <?php function recursiveChmod($path, $filePerm=0644, $dirPerm=0755) { // Check if the path exists if(!file_exists($path)) { return(FALSE); } // See whether this is a file if(

php上传文件并显示上传进度的方法_php技巧

本文实例讲述了php上传文件并显示上传进度的方法.分享给大家供大家参考.具体如下: 记得上传文件的时候要大点,不然还没看出来就上传完了,并且上传的文件不要太大,上G的就算了,2G的我试了,PHP受不了,我测试的是300多M的,记得要调整小php.ini参数啊 "选文件=>提交=>获取信息"要一气呵成哦^ ^ <?php $prefix = ini_get('session.upload_progress.prefix'); $name = ini_get('sessi

php简单获取文件扩展名的方法_php技巧

本文实例讲述了php简单获取文件扩展名的方法.分享给大家供大家参考.具体实现方法如下: <?php function get_file_extension($file_name) { /* may contain multiple dots */ $string_parts = explode('.', $file_name); $extension = $string_parts[count($string_parts) - 1]; $extension = strtolower($exten

php文件上传的两种实现方法_php技巧

文件上传一般有下面2种方式: 有两种: 1.标准input表单方式,典型的用$_FILES进行接收: 2.以Base64的方式进行传送,一般是AJAX异步上传. 第一种 标准的input表单方式,适用于大文件进行上传,同时支持批量.html代码关键的几句: <form enctype="multipart/form-data" method="post" action="upload.php""> <input typ