PHP实现视频文件上传完整实例


Posted in PHP onAugust 28, 2014

本文以一个完整实例的形式实现了视频文件上传的功能。虽然是比较基础的应用,仍有一定的参考价值。分享给大家供大家参考之用。具体方法如下:

首先,对PHP来说视频也属于文件,我们利用这个道理,可以通过与上传普通文件类似的方式实现上传PHP视频文件。不同的是视频文件一般较大,上传时间长,而php配置文件也对上传文件的大小有限制。
如果需要更好地用PHP实现文件上传,还是推荐使用FTP上传方式。

一、PHP处理代码如下:

<?php
//设置最多允许10个文件同时上传
define('MUILTI_FILE_UPLOAD', '10');
//设置文件大小不超过5MB
define('MAX_SIZE_FILE_UPLOAD', '500000' );
//设置上传文件的存储目录
define('FILE_UPLOAD_DIR', '/fileUploads');
//允许上传的文件扩展名
$array_extention_interdite = array( '.flv' , '.wmv' , '.rmvb' , '.php' , '.php3' , '.php4' , '.exe' , '.msi' , '.htaccess' , '.gz' );
//显示信息的公共函数
function func_message($message='', $ok=''){
 echo '<table width="100%" cellspacing="0" cellpadding="0" border="0">';
 if($ok == true)
 echo '<tr><td width="50%"> '.$message.'</td></tr>' ;
 else
 echo '<tr><td width="50%"> '.$message.'</td></tr>';
 echo '</table>';  
}
//处理表单提交
$action = (isset($_POST['action'])) ? $_POST['action'] :'' ;
$file = (isset($_POST['file'])) ? $_POST['file'] :'' ;
if($file != '')
  $file = $file.'/';
$message_true = '';
$message_false = '';
switch($action){
 case 'upload' :  
 chmod(FILE_UPLOAD_DIR,0777);  
 for($nb = 1 ; $nb <= MUILTI_FILE_UPLOAD ; $nb ++ ){   
  if( $_FILES['file_'.$nb]['size'] >= 10 ){ 
  if ($_FILES['file_'.$nb]['size'] <= MAX_SIZE_FILE_UPLOAD ){ 
   if (!in_array(ereg_replace('^[[:alnum:]]([-_.]?[[:alnum:]])*.' ,'.', $_FILES['file_'.$nb]['name'] ) , $array_extention_interdite) ){ 
           if($_POST['file_name_'.$nb] !='')
             $file_name_final = $_POST['file_name_'.$nb].$extension ;
           else
             $file_name_final = $_FILES['file_'.$nb]['name'] ;
           //修改文件名
           $file_name_final = strtr($file_name_final, 'aaaaaa', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
           $file_name_final = preg_replace('/([^.a-z0-1]+)/i', '_', $file_name_final ); 
           
           $_FILES['file_'.$nb]['name'] = $file_name_final;  
           //开始上传
           move_uploaded_file( $_FILES['file_'.$nb]['tmp_name'] , FILE_UPLOAD_DIR . $file . $file_name_final );
       
           $message_true .= '文件上传成功 : '.$_FILES['file_'.$nb]['name'] .'<br>'; 
        }else
           $message_false .= '文件上传失败 : '.$_FILES['file_'.$nb]['name'] .' <br>';
      }else
        $message_false .= '文件最大尺寸不能超过'.MAX_SIZE_FILE_UPLOAD/1000 . 'KB : "'.$_FILES['file_'.$nb]['tmp_name'].'" <br>';
    }
  }//end for
 break;
}
?>

二、HTML代码如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<title>PHP文件上传</title>
<style type="text/css" rel="stylesheet" />
.border{
 background-color:#000000
}
.box{
 background-color:#f8f8f9;
}
.text{ 
 color:#000000;
 font-family: "宋体";
 font-size: 12px;
 font-weight:bold
}
input, select{
 font-size: 12px;
}
body{
  margin: 0;
}
</style>
<body>
 <!-- 文件上传表单,enctype属性是必须的 -->
 <form name="form" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF'] ; ?>">
 <input type="hidden" name="action" value="upload">
 <table border="0" cellspacing="1" cellpadding="0" align="center" class="border">
  <tr> 
  <td>
   <?php
   if($message_true != '')
    func_message($message_true, true);
   if($message_false != '')
    func_message($message_false, false);
   ?>
   <table width="100%" border="0" cellspacing="5" cellpadding="2" align="center" class="box">
   <?php 
    for($nb = 1 ; $nb <= MUILTI_FILE_UPLOAD ; $nb ++ ){ 
   ?>
   <tr class="text"> 
    <td>上传文件: <?php echo $nb; ?></td> 
    <td><input type="file" name="file_<?php echo $nb; ?>"></td>
    <td>新文件名(包括扩展名):<?php echo $nb; ?> </td>
    <td><input type="text" name="file_name_<?php echo $nb; ?>"></td>
   </tr>
   <?php } ?>
   <tr> 
    <td colspan="2" align="right" class="text">
    上传目的地址:<?php echo FILE_UPLOAD_DIR ;?>
     <select name="file">    
     <option value=""></option>
     <?php 
     $repertoire = opendir(FILE_UPLOAD_DIR); 
     while( $file = readdir($repertoire) ) { 
      $file = str_replace('.','',$file);
      if( is_dir($file)) { 
     ?> 
     <option value="<?php echo $file; ?>"> <?php echo $file; ?>/</option>
     <?php 
       } 
     } 
     closedir($repertoire); 
     ?>
    </select>
    </td>
    <td colspan="2" align="right"><input type="submit" value="可同时上传<?php echo $nb-1; ?> 个文件 "></td>
   </tr>
   </table>
  </td>
  </tr>
 </table>
 </form>  
</body>
</html>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php cli 方式 在crotab中运行解决
Feb 08 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
优化PHP代码技巧的小结
Jun 02 PHP
PHP register_shutdown_function函数的深入解析
Jun 03 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
利用switch语句进行多选一判断的实例代码
Nov 14 PHP
关于PHP内置的字符串处理函数详解
Feb 04 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
php封装的page分页类完整实例代码
Feb 01 PHP
PHP获取表单所有复选框的值的方法
Aug 28 #PHP
PHP中echo和print的区别
Aug 28 #PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
Aug 28 #PHP
PHP防盗链代码实例
Aug 27 #PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 #PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 #PHP
简单分析ucenter 会员同步登录通信原理
Aug 25 #PHP
You might like
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
Python实现的选择排序算法示例
2017/11/29 Python
python 字典中取值的两种方法小结
2018/08/02 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
高考考python编程是真的吗
2020/07/20 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
机械绘图员岗位职责
2013/11/19 职场文书
团代会开幕词
2015/01/28 职场文书
起诉意见书范文
2015/05/19 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
JS代码编译器Monaco使用方法
2021/06/11 Javascript
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript