php上传视频文件怎么实现

解决方案 »

  1.   

    <?php 
    define('MUILTI_FILE_UPLOAD', '10'); //最多10个文件同时上传
    define('MAX_SIZE_FILE_UPLOAD',  '500000' ); //文件大小不超过5MB
    define('FILE_UPLOAD_DIR', 'd:/'); //上传文件的目录
    //允许上传的文件名
    $array_extention_interdite = array( '.php' , '.php3' , '.php4' , '.exe' , '.msi' , '.htaccess' , '.gz' ); //上传文件的扩展名//显示信息的公共函数
    function func_message($message='', $ok=''){
    echo '<table width="100%" cellspacing="0" cellpadding="5">';
    if($ok == true){ 
    echo '<tr bgcolor="#99FF99" ><td width="100">&nbsp;</td><td class= "text"> '.$message.'</td></tr>' ;
    }
    if($ok == false){ 
    echo '<tr bgcolor="#FF99CC" ><td width="100">&nbsp;</td><td class="text"> '.$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>
    <head>
    <title>多文件上传</title>
    <style>
    .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-top: 8px;
    }
    </style>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
    <body marginwidth="0" bottommargin="0" leftmargin="0" rightmargin="0">
    <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>
      

  2.   

    看看这里对上传文件的处理:http://hi.csdn.net/link.php?url=http://blog.csdn.net%2Fyw1386
      

  3.   

    和上传普通文件一样吧?
    move_uploaded_file函数
      

  4.   

    和普通文件一样,只上传视频的话判断一下上传文件的MIME类型过滤一下就可以了
      

  5.   

    我也正要写PHP网站播放视频文件的实现方案。
    没有经验没有资料,等高手指点。
    上传完后,想在前台页面播放的话,是不是还需要压缩及格式转换?
      

  6.   

    asf avi rmvb 等 格式的视频文件 上传上去 本就是可以播放放的 不过客户端要装相应的播放器可解码器
    asf avi windows系统自带播放器 windows media player 就可以播放 但是 rmvb 格式的东西 就需要装 realone 之类的播放器才能放了 
    鉴于这个原因 建议 在视频文件上传后 对其进行转码,转换成 flv 格式 ,这个格式 的播放器是 flash player,很少电脑没装这个的...
      

  7.   

    和上传普通文件一样,代码可看看
    http://www.lession.net/blog/blogDetail.jsp?id=21
      

  8.   

    和上传普通文件一样,不过如果太大的话需要设置一下php.ini,如果是大文件上传建议使用flash的方式上传!
      

  9.   

    视频有点大了,感觉用php上传不是很好,用php的ftp上传吧
      

  10.   

    文件太大的话,的确用ftp实现这个功能好
      

  11.   

    上传大文件,用ftp的时候容易断掉。然后就上传不上去了,这个问题应该怎么办???