PHP实现视频文件上传完整实例
本文以一个完整实例的形式实现了视频文件上传的功能。虽然是比较基础的应用,仍有一定的参考价值。分享给大家供大家参考之用。具体方法如下:
首先,对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'); //显示信息的公共函数 functionfunc_message($message='',$ok=''){ echo'<tablewidth="100%"cellspacing="0"cellpadding="0"border="0">'; if($ok==true) echo'<tr><tdwidth="50%">'.$message.'</td></tr>'; else echo'<tr><tdwidth="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>'; } }//endfor break; } ?>
二、HTML代码如下:
<html> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"> </head> <title>PHP文件上传</title> <styletype="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属性是必须的--> <formname="form"enctype="multipart/form-data"method="post"action="<?phpecho$_SERVER['PHP_SELF'];?>"> <inputtype="hidden"name="action"value="upload"> <tableborder="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); ?> <tablewidth="100%"border="0"cellspacing="5"cellpadding="2"align="center"class="box"> <?php for($nb=1;$nb<=MUILTI_FILE_UPLOAD;$nb++){ ?> <trclass="text"> <td>上传文件:<?phpecho$nb;?></td> <td><inputtype="file"name="file_<?phpecho$nb;?>"></td> <td>新文件名(包括扩展名):<?phpecho$nb;?></td> <td><inputtype="text"name="file_name_<?phpecho$nb;?>"></td> </tr> <?php}?> <tr> <tdcolspan="2"align="right"class="text"> 上传目的地址:<?phpechoFILE_UPLOAD_DIR;?> <selectname="file"> <optionvalue=""></option> <?php $repertoire=opendir(FILE_UPLOAD_DIR); while($file=readdir($repertoire)){ $file=str_replace('.','',$file); if(is_dir($file)){ ?> <optionvalue="<?phpecho$file;?>"><?phpecho$file;?>/</option> <?php } } closedir($repertoire); ?> </select> </td> <tdcolspan="2"align="right"><inputtype="submit"value="可同时上传<?phpecho$nb-1;?>个文件"></td> </tr> </table> </td> </tr> </table> </form> </body> </html>
希望本文所述对大家的PHP程序设计有所帮助。