Author
Message
Kaan

Administrators

Online status

678 posts

#848   2016-03-14 23:04 GMT        
PHP ffmpeg Upload Script

:
hp]  <?php

 

   // size input prevents buffer overrun exploits.

   function sizeinput($input, $len){

        (int)$len;

     (string)$input;

     $n = substr($input, 0,$len);

     $ret = trim($n);

     $out = htmlentities($ret, ENT_QUOTES);

     return $out;

}

 //Check the file is of correct format.  

function checkfile($input){

    $ext = array('mpg', 'wma', 'mov', 'flv', 'mp4', 'avi', 'qt', 'wmv', 'rm');

    $extfile = substr($input['name'],-4);

    $extfile = explode('.',$extfile);

    $good = array();

    $extfile = $extfile[1];

    if(in_array($extfile, $ext)){

          $good['safe'] = true;

         $good['ext'] = $extfile;

    }else{

          $good['safe'] = false;

   }

     return $good;

  }

  $user_id = $_SESSION['table_id'];

 // if the form was submitted process request if there is a file for uploading

 if($_POST && array_key_exists("vid_file", $_FILES)){

                           //$uploaddir is for videos before conversion

                          $uploaddir = 'uploads/videos/';

                           //$live_dir is for videos after converted to flv

        $live_dir = 'uploads/live/';

                            //$live_img is for the first frame thumbs.

        $live_img = 'uploads/images/';     

                           $seed = rand(1,2009) * rand(1,10);        

        $upload = $seed. basename($_FILES['vid_file']['name']);

        $uploadfile = $uploaddir .$upload;        

        $vid_title = sizeinput($_POST['vid_title'], 50);

        $vid_desc = sizeinput($_POST['vid_description'], 200);

                           $vid_cat = (int)$_POST['vid_cat'];

        $vid_usr_ip = $_SERVER['REMOTE_ADDR'];

                         $safe_file = checkfile($_FILES['vid_file']);

        if($safe_file['safe'] == 1){

                                if (move_uploaded_file($_FILES['vid_file']['tmp_name'], $uploadfile)) {

                                       echo "File is valid, and was successfully uploaded.<br/>";

                    $base = basename($uploadfile, $safe_file['ext']);

                    $new_file = $base.'flv';

                    $new_image = $base.'jpg';

                    $new_image_path = $live_img.$new_image;

                    $new_flv = $live_dir.$new_file;

                    //ececute ffmpeg generate flv

                      exec('ffmpeg -i '.$uploadfile.' -f flv -s 320x240 '.$new_flv.'');

                       //execute ffmpeg and create thumb

            exec('ffmpeg  -i '.$uploadfile.' -f mjpeg -vframes 1 -s 150x150 -an '.$new_image_path.'');

            echo 'Thank You For Your Video!<br>';

                       //create query to store video



        $sql = 'INSERT INTO videos (vid_cat_id, vid_user, vid_title, vid_desc, vid_file_name, image_file, vid_usr_ip) VALUES(''.$vid_cat.'', ''.$user_id.'', ''.$vid_title.'', ''.$vid_desc.'', ''.$new_file.'', ''.$new_image.'', ''.$vid_usr_ip.'')';

                    $mysql = new mysqli('localhost', 'user', 'Pass&d', 'databasename');

                    echo '<img src="'.$new_image_path.'" /><br/>

                          <h3>'.$vid_title.'</h3>';

                    mysqli_query($mysql, $sql) or die(mysqli_error($mysql));

             } else {

                    echo "Possible file upload attack!n";

                    print_r($_FILES);

             }

 

        }else{

       

             echo 'Invalid File Type Please Try Again. You file must be of type

             .mpg, .wma, .mov, .flv, .mp4, .avi, .qt, .wmv, .rm';

       

        }

 }

 ?>

 <form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">

  <p align="left">Please upload Your video.  Thumbnails of your videos are based on the first frame of your video. <br /><h3>Please allow up to a minute for your video to upload. </h3>

   </p>

  <table width="600" border="0" align="center" cellpadding="2" cellspacing="2">

  <tr>

    <td width="260" align="left" colspan="3"><div align="center">

      <h3>Upload your Video ! </h3>

    </div></td>

   </tr>

    <tr>

      <td width="260"  align="left"> </td>

      <td width="326" align="left"> </td>

    </tr>

    <tr>

      <td align="left">Title Of Video : </td>

      <td align="left"><input name="vid_title" type="text" id="vid_title" /></td>

   </tr>

   <tr>

     <td align="left">File: .mov, .avi, .wma , .mpeg : </td>

     <td align="left"><input name="vid_file" type="file" id="vid_file" /></td>

  </tr>

   <tr>

     <td align="left">Description:</td>

    <td align="left"><textarea name="vid_description" id="vid_description"></textarea></td>

  </tr>

   <tr>

     <td align="left">Category:</td>

    <td align="left"><select name="vid_cat">

       <option value="1" selected="selected">Video</option>

       <option value="2">Cat1</option>

      <option value="3">Cat2</option>

      <option value="4">Cat3</option>

      <option value="5">Cat4</option>

    </select>

     </td>

  </tr>

  <tr>

    <td> </td>

     <td><input type="submit" name="Submit" value="Upload Video" /></td>

  </tr>

 </table>

 

</form>


Bunlara baktınızmı?
552 Disk full - please upload later Nedir?
Seditio 175+ pagethumb eklentisinde upload sorunu
CKeditor Resim Upload İşlemi
Kişiliğim, hayatım hakkında konuşabilirsiniz. Fikir yürüte bilirsiniz. Beni öyle böyle sanabilirsiniz. Ama emin olamazsınız. Sizin hakkımdaki yorumlarınız, sanmalarınız benim gerçek de ne olduğumu değiştirmez. Baktığım yeri söyleye bilirsiniz ama ne gördüğümü ASLA...