Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: konvicted en 6 Diciembre 2007, 04:43 AM

Título: [PHP] Upload video
Publicado por: konvicted en 6 Diciembre 2007, 04:43 AM
Hola, quiero hacer un upload del video... tengo el html echo...y algo se de php.. pero la verdad me dijeron algo del TEMP q no entendi... les dejo los campos  y porfavor ayudenmen asi lo analizo y trato de aprender como es que se hace xD!!..

el campo file se llama "video".

Muchas gracias a todos.
Título: Re: [PHP] Upload video
Publicado por: alone-in-the-chat en 6 Diciembre 2007, 05:18 AM
xD tb te armamos la pagina si quieres n_n

Título: Re: [PHP] Upload video
Publicado por: :ohk<any> en 6 Diciembre 2007, 14:15 PM
A tu pregunta, lo que creo que necesitas es un codigo php que te permita subir un video a tu server... si es eso aqui te voy a poner un pedazo de codigo fuente para que lo analizes, funciona perfectamente.


<html>
<head>
<title>::: upload your file :::</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.style1 {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-weight: bold;
color: #CC9900;
font-size: 12px;
}
.style5 {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #999999;
}
-->
</style>
</head>
<body>
<br /><br />
<div class="main">
  <div id="left">
  <table width="353" border="0">
      <tr>
        <td><div align="center" class="style1">
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>Suba su archivo</p>
        </div>
          <table width="383" height="139" border="0">
            <tr>
              <td><div align="center">
                <p align="center">&nbsp;</p>
                <p align="center" class="style5">


<?php
function pArray($array) {
print '<pre style="background:#faebd7">';
print_r($array);
print '</pre>';
}

require_once(
'upload.class.php');

$Upload = new Upload();

if (!Empty(
$_POST['submit'])) {
    
//formato del archivo

    
$Upload-> Extension '.flv;.mp4;.wav;.mpeg;';
    
    
$Upload-> DirUpload    '.';
        
    
$Upload-> Execute();
        
    if (
$UploadError) {
        print 
'Ha ocurrido un error :'
        
pArray($Upload-> GetError());
    } else {
    print 'Su archivo ha sido cargado con exito, muchas gracias ::';
        print 
'La carga de su archivo ha generado el siguiente suceso::';
        
pArray($Upload-> GetSummary());
    }
}

//tamaño del archivo a subir

$Upload-> MaxFilesize  '1024';

$Upload-> FieldOptions 'style="border-color:black;border-width:1px;"';

$Upload-> Fields       2;

$Upload-> InitForm();
?>



<form method="post" enctype="multipart/form-data" name="formulaire" id="formulaire" action="subir.php">
<?php

print $Upload-> Field[0];

print 
$Upload-> Field[1] . '<br>';

print 
$Upload-> Field[2];
?>

<br>
<input type="submit" value="Subir archivo" name="submit">
</form>




&nbsp;</p>
                </div></td>
            </tr>
          </table>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>&nbsp;</p></td>
      </tr>
    </table>
<br/>
</div>
<div id="footer"></div>
</div>
</body>
</html>


este es el primer php para la subida de un archivo, pero para que funcione necesitas tener este otro...

este php debe estar con el nombre de upload.class.php


<?php

global $UploadError;

class 
Upload {
    
    var 
$MaxFilesize;
        
    var 
$ImgMaxWidth;
        
    var 
$ImgMaxHeight;
        
    var 
$ImgMinWidth;
        
    var 
$ImgMinHeight;
        
var $DirUpload;
        
var $Debit;
        
var $Fields;
        
var $FieldOptions;
        
var $Required;
        
var $SecurityMax;
        
var $Filename;
        
var $Prefixe;
        
var $Suffixe;
        
var $WriteMode;
        
var $CheckReferer;
        
var $MimeType;
        
var $TrackError;
            

function Upload() {
$this-> Extension    '';
        
$this-> DirUpload    '';
        
$this-> MimeType     '';
$this-> Filename     '';
        
$this-> FieldOptions '';
$this-> Fields       1;
$this-> WriteMode    0;
        
$this-> Debit        33.6;
        
$this-> SecurityMax  false;
$this-> CheckReferer false;
        
$this-> Required     false;
        
$this-> TrackError   true;
        
$this-> ArrOfError   = Array();
        
$this-> MaxFilesize  ereg_replace('M'''ini_get('upload_max_filesize')) * 1024;
}
  
function InitForm() {
$this-> SetMaxFilesize();
        
$this-> CreateFields();
}
        
    function 
GetError($num_field='') {
        if (Empty(
$num_field)) return $this-> ArrOfError;
        else                  return 
$this-> ArrOfError[$num_field];
    }

    function 
GetSummary($num_field='') {
        if (
$num_field == '') return $this-> Infos;
        else                  return 
$this-> Infos[$num_field];
    }

function Execute(){
        
$this-> CheckConfig();
$this-> VerifyReferer();
$this-> SetTimeLimit();
$this-> CheckUpload();
}

function CheckUpload() {
global $UploadError;
                
for ($i=0$i count($_FILES['userfile']['tmp_name']); $i++)  {
            

            
$this-> _field $i+1;                                
$this-> _size  $_FILES['userfile']['size'][$i];     
$this-> _type  $_FILES['userfile']['type'][$i];     
$this-> _name  $_FILES['userfile']['name'][$i];     
$this-> _temp  $_FILES['userfile']['tmp_name'][$i]; 
$this-> _ext   strtolower(substr($this-> _namestrrpos($this-> _name'.'))); 

if (is_uploaded_file($_FILES['userfile']['tmp_name'][$i])) {
$this-> CheckSecurity();
$this-> CheckMimeType();
$this-> CheckExtension();
                
$this-> CheckImg();
} else $this-> AddError($_FILES['userfile']['error'][$i]); 

            if (!isset(
$this-> ArrOfError[$this-> _field])) $this-> WriteFile($this-> _name$this-> _type$this-> _temp$this-> _size$this-> _ext$this-> _field);
            else 
$UploadError true;
}
}


function WriteFile($name$type$temp$size$ext$num_field) {
        
        
$new_filename NULL;
        
        if (
is_uploaded_file($temp)) {
            
            
            if (Empty(
$this-> Filename)) $new_filename $this-> CleanStr(substr($name0strrpos($name'.')));
            else 
$new_filename $this-> Filename;
            
            
            
$new_filename $this-> Prefixe $new_filename $this-> Suffixe $ext;
            
            switch (
$this-> WriteMode) {
                
                case 
$uploaded move_uploaded_file($temp$this-> DirUpload $new_filename);
                         break;
                    
                
                case 
: if ($this-> AlreadyExist($new_filename)) $new_filename 'copie_de_' $new_filename;
                
 $uploaded move_uploaded_file($temp$this-> DirUpload $new_filename);
                
 break;
                
                
                case 
:  if ($this-> AlreadyExist($new_filename)) $uploaded true;
                          else 
$uploaded move_uploaded_file($temp$this-> DirUpload $new_filename);
                          break;
            }
                        
            if (
$uploaded != false) {
                
$this-> Infos[$num_field]['nom']          = $new_filename;
                
$this-> Infos[$num_field]['nom_originel'] = $name;
                
$this-> Infos[$num_field]['chemin']       = $this-> DirUpload $new_filename;
                
$this-> Infos[$num_field]['poids']        = number_format(filesize($this-> DirUpload $new_filename)/10243'.''');
                
$this-> Infos[$num_field]['mime-type']    = $type;
                
$this-> Infos[$num_field]['extension']    = $ext;
            }
            
            return 
true;
        }
        
        return 
false;


function AlreadyExist($file) {
if (!file_exists($this-> DirUpload $file)) return false;
else return true;
}



function CheckImg() {
        
        if (
$taille = @getimagesize($this-> _temp) ) {
        if (!Empty($this-> ImgMaxWidth)  && $taille[0] > $this-> ImgMaxWidth)  $this-> AddError(8);
        if (!Empty($this-> ImgMaxHeight) && $taille[1] > $this-> ImgMaxHeight$this-> AddError(9);
            if (!Empty(
$this-> ImgMinWidth)  && $taille[0] < $this-> ImgMinWidth$this-> AddError(10);
            if (!Empty(
$this-> ImgMinHeight) && $taille[1] < $this-> ImgMinHeight$this-> AddError(11);
        }
        
        return 
true;
}



function CheckExtension() {
        
$ArrOfExtension explode(';'strtolower($this-> Extension));
        
if (!Empty($this-> Extension) && !in_array($this-> _ext$ArrOfExtension)) {
            
$this-> AddError(7);
            return 
false;
}
        
return true;
}



function CheckMimeType() {
        
$ArrOfMimeType explode(';'$this-> MimeType);
        
        if (!Empty(
$this-> MimeType) && !in_array($this-> _type$ArrOfMimeType)) {
            
$this-> AddError(6);
return false;
}
        
return true;
}



    function 
AddError($code_erreur) {
       
 
        switch (
$code_erreur) {
            case 
$msg 'Le fichier à charger excède la directive upload_max_filesize (php.ini) ('$this-> _name .')';
                     break;
            
            case 
$msg 'Le fichier excède la directive MAX_FILE_SIZE qui a été spécifiée dans le formulaire ('$this-> _name .')';
                     break;
            
            case 
$msg 'Le fichier n\'a pu être chargé complètement ('$this-> _name .')';
                     break;
            
            case 
$msg 'Le champ du formulaire est vide';
                     break;
            
            case 
$msg 'Fichier potentiellement dangereux ('$this-> _name .')';
                     break;
            
            case 
$msg 'Le fichier n\'est pas conforme à la liste des entêtes autorisés ('$this-> _name .')';
                     break;
            
            case 
$msg 'Le fichier n\'est pas conforme à la liste des extensions autorisées ('$this-> _name .')';
                     break;
            
            case 
$msg 'La largeur de l\'image dépasse celle autorisée ('$this-> _name .')';
                     break;
            
            case 
$msg 'La hauteur de l\'image dépasse celle autorisée ('$this-> _name .')';
                     break;
            
            case 
10 $msg 'La largeur de l\'image est inférieure à celle autorisée ('$this-> _name .')';
                      break;
            
            case 
11 $msg 'La hauteur de l\'image est inférieure à celle autorisée ('$this-> _name .')';
                      break;
        }
        
        
        if (
$this-> Required && $code_erreur == 4$this-> ArrOfError[$this-> _field][$code_erreur] = $msg;
        else if (
$code_erreur != 4)                $this-> ArrOfError[$this-> _field][$code_erreur] = $msg;
    }
    

function CheckSecurity() {
        
if ($this-> SecurityMax===true) {

            if (
ereg ('application/octet-stream'$this-> _type) || preg_match("/.php$|.inc$|.php3$/i"$this-> _ext) ) {
                
$this-> AddError(5);
return false;
            }
}

return true;
}


function CheckDirUpload() {
        
        if (Empty(
$this-> DirUpload)) $this-> DirUpload dirname(__FILE__);
        
        
$this-> DirUpload $this-> FormatDir($this-> DirUpload);
        

if (!is_dir($this-> DirUpload)) $this-> Error('Le répertoire de destination spécifiée par la propriété DirUpload n\'existe pas.');
      
if (!is_writeable($this-> DirUpload)) $this-> Error('Le répertoire de destination spécifiée par la propriété DirUpload est inaccessible en écriture.');
}

    
    function 
FormatDir($Dir) {
        
        if (
function_exists('realpath')) {
            if (
realpath($Dir)) $Dir realpath($Dir);
        }
        
        
        if (
$Dir[strlen($Dir)-1] != DIRECTORY_SEPARATOR$Dir .= DIRECTORY_SEPARATOR;
        
        return 
$Dir;
    }

    
function CleanStr($str) {
$return '';

for ($i=0$i <= strlen($str)-1$i++) {
            if (
eregi('[a-z]',$str{$i}))              $return .= $str{$i};
elseif (eregi('[0-9]'$str{$i}))         $return .= $str{$i};
elseif (ereg('[àâäãáåÀÁÂÃÄÅ]'$str{$i})) $return .= 'a';
elseif (ereg('[æÆ]'$str{$i}))           $return .= 'a';
elseif (ereg('[çÇ]'$str{$i}))           $return .= 'c';
elseif (ereg('[éèêëÉÈÊËE]'$str{$i}))    $return .= 'e';
elseif (ereg('[îïìíÌÍÎÏ]'$str{$i}))     $return .= 'i';
elseif (ereg('[ôöðòóÒÓÔÕÖ]'$str{$i}))   $return .= 'o';
elseif (ereg('[ùúûüÙÚÛÜ]'$str{$i}))     $return .= 'u';
elseif (ereg('[ýÿÝŸ]'$str{$i}))         $return .= 'y';
elseif (ereg('[ ]'$str{$i}))            $return .= '_';
elseif (ereg('[.]'$str{$i}))            $return .= '_';
else                                      $return .= $str{$i};
}

return $return;
}

function VerifyReferer() {
if (!Empty($this-> CheckReferer)) {
            
$headerref $_SERVER['HTTP_REFERER'];
            
            
            if (
ereg("\?",$headerref)){
    list($url$getstuff) = split('\?'$headerref);
    $headerref $url;
    }
            
            if (
$headerref == $this-> CheckReferer) return true;
    else $this-> Error('Accès refusé');
        }
}


function SetTimeLimit(){

@set_time_limit(ceil(ceil($this->  $_POST['MAX_FILE_SIZE'] * 8) / ($this-> Debit 1000) * count($_FILES) * 2));
}


    function 
SetMaxFilesize() {
        (
is_numeric($this-> MaxFilesize)) ? $this-> MaxFilesize $this-> MaxFilesize 1024 $this-> Error('la propriété MaxFilesize doit être une valeur numérique');
    }

    function 
CreateFields() {
        if (!
is_int($this-> Fields)) $this-> Error('la propriété Fields doit être un entier');
        
        for (
$i=0$i <= $this-> Fields$i++) {
            if (
$i == 0)  $this-> Field[] = '<input type="hidden" name="MAX_FILE_SIZE" value="'$this-> MaxFilesize .'">';
            else          
$this-> Field[] = '<input type="file" name="userfile[]" '$this-> FieldOptions .'>';
        }
    }
    

    function 
CheckConfig() {
        if (!
version_compare(phpversion(), '4.2.0')) $this-> Error('la version de php sur ce serveur est trop ancienne. La classe ne peut fonctionner qu\'avec une version égale ou supérieure à la version 4.1.0');
        if (!
is_string($this-> Extension)) $this-> Error('la propriété Extension est mal configurée.');
        if (!
is_string($this-> MimeType)) $this-> Error('la propriété MimeType est mal configurée.');
        if (!
is_string($this-> Filename)) $this-> Error('la propriété Filename est mal configurée.');
        if (!
is_numeric($this-> Debit)) $this-> Error('la propriété Debit est mal configurée.');
        if (!
is_bool($this-> Required)) $this-> Error('la propriété Required est mal configurée.');
        if (!
is_bool($this-> SecurityMax)) $this-> Error('la propriété SecurityMax est mal configurée.');
        if (
$this-> WriteMode != && $this-> WriteMode != && $this-> WriteMode != 2$this-> Error('la propriété WriteMode est mal configurée.');
        if (!Empty(
$this-> CheckReferer) && !@fopen($this-> CheckReferer'r')) $this-> Error('la propriété CheckReferer est mal configurée.');
        
$this-> CheckImgPossibility();
        
$this-> CheckDirUpload();
    }
    

    function 
CheckImgPossibility() {
        if (!Empty(
$this-> ImgMaxWidth)  && !is_numeric($this-> ImgMaxWidth))   $this-> Error('la propriété ImgMaxWidth est mal configurée.');
        if (!Empty(
$this-> ImgMaxHeight) && !is_numeric($this-> ImgMaxHeight))  $this-> Error('la propriété ImgMaxHeight est mal configurée.');
        if (!Empty(
$this-> ImgMinWidth)  && !is_numeric($this-> ImgMinWidth))   $this-> Error('la propriété ImgMinWidth est mal configurée.');
        if (!Empty(
$this-> ImgMinHeight) && !is_numeric($this-> ImgMinHeight))  $this-> Error('la propriété ImgMinHeight est mal configurée.');
    }
    

    function 
Error($error_msg) {
        if (
$this-> TrackError) {
            echo 
'Erreur classe Upload : ' $error_msg;
            exit;
        }
    }
    

?>



Este codigo lo podés encontrar mas completo en www.desarrolloweb.com/scripts/php.php (http://www.desarrolloweb.com/scripts/php.php)

para la proxima ves que postees al menos investiga por tu cuenta un poco y no vengas con las manos vacias.

--
OHK
Título: Re: [PHP] Upload video
Publicado por: konvicted en 6 Diciembre 2007, 14:29 PM
muchas gracias, no vine con las manos vacias... lo que pasa es que me empezarno a confundir con el tema de los TEMP y me dijeron que tenia q armar una variable para el TEMP y no entendi...
gracias se agradece.
Título: Re: [PHP] Upload video
Publicado por: :ohk<any> en 6 Diciembre 2007, 16:08 PM
Pido disculpas al moderador, por poner un codigo fuente demasiado extenso.

el link del upload.class.php esta en esta dirección aqui (http://rafb.net/p/joTzzC48.html)

sorry...

--
OHK