Hola que tal¿?
La cuestión es que estoy intentando subir un video en localhost a la bd y no consigo que me funcione. He estado mirando por google y no e encontrado solución. La cuestión es que he tocado el php.ini aumentado el tamaño para subir el archivo y no consigo que funcione.
Este es el codigo php que utilizo:
Código PHP:
function subirArchivo($db,$id,$dirArchivos,$nombre_archivo,$tipo_archivo,$tamano_archivo,$tmp_name)
{
$auxInfo=pathinfo($nombre_archivo);
$extension=$auxInfo["extension"];
$auxNombre=basename($nombre_archivo,".".$extension);
if ($tipo_archivo == "video/avi"){
echo "video avi";
}
//comprobamos que es un fichero de imagen/video
if (!(((strpos($tipo_archivo, "jpeg")) || strpos($tipo_archivo, "jpg") || strpos($tipo_archivo, "bmp") || strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "avi") || strpos($tipo_archivo, "mpg") || strpos($tipo_archivo, "mov")) && ($tamano_archivo < 100000000)))
{
echo "La extensión o el tamaño de las fotos o video no es correcta. <br>
<table><tr><td><li>Se permiten fotos jpeg, jpg, bmp, o gif<br>
<li>se permiten fotos de 1 MB máximo.</td></tr>
<li>Se permiten videos avi, mpg o mov<br>
<li>se permiten videos de 100 MB máximo.</td></tr>
</table>";
echo "Nombre Archivo: ".$nombre_archivo." Tipo Archivo: ".$tipo_archivo." Tamaño Archivo :".$tamano_archivo."<br>";
} else {
$nombreFinal=$dirArchivos.$id."_".$auxNombre.".".$extension;
//calculamos el nombre final
$i=0;
while (file_exists($nombreFinal))
{
$nombreFinal=$dirArchivos.$id."_".$auxNombre."_".$i.".".$extension;
$i++;
}//if
if (move_uploaded_file($tmp_name, $nombreFinal)){
//echo $HTTP_POST_FILES['userfile']['tmp_name'];
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
return null;
}//if
//echo "Nombre Archivo: ".$nombre_archivo." Tipo Archivo: ".$tipo_archivo." Tamaño Archivo :".$tamano_archivo." Nombre Final :".$nombreFinal."<br>";
//Obtenemos el tamaño (ancho x alto) de la imagen
$size = getimagesize($dirArchivos.$id."_".$nombre_archivo);
$tamaño_final=$size[0]." x ".$size[1];
if (((strpos($tipo_archivo, "jpeg")) || strpos($tipo_archivo, "jpg") || strpos($tipo_archivo, "bmp") || strpos($tipo_archivo, "gif")))
{
//Creacion del thumbnails
$nombreThumb = $id."_".$nombre_archivo;
$dirThumbs="./archivos/thumbs/"; //directorio donde se almacenan los thumbs
if(!thumbnail($nombreThumb,$dirThumbs,150,113,true))
{
echo "Error en la creacion de thumbnail <br>";
}else{
echo "Creacion thumbnail exitosa <br>";
}//if
$urlThumb = $dirThumbs.$nombreThumb;
$tamañoThumb="150 x 113";
} else {
$urlThumb = null;
$tamañoThumb= null;
}
//Ahora insertamos la info del archivo
$strSQL="INSERT INTO archivos (id,url,mime,size,nombre,tamaño, urlThumb, tamañoThumb) VALUES (null, '".urlencode($nombreFinal)."', '". $tipo_archivo ."', " . $tamano_archivo . ",'" . $nombre_archivo."','" .$tamaño_final. "', '".urlencode($urlThumb). "', '" .$tamañoThumb."' );";
echo "++++++++++++++++++".$strSQL."++++++++++++++";
$result=$db->query($strSQL);
$result=$db->insert_id();
echo "<br><br>";
if($db->affectedRows==0)
{
echo "Error insertando en la tabla de archivos: ".strSQL;
return null;
} else {
//si todo ha ido bien, devolvemos el id del archivo que se acaba de insertar
return $result;
}//if
}//if
return null;
}
La cuestion es que me sale el if de la comprobación del archivo y ya no se que hacer.
El codigo de html que utilizo es este:
Código HTML:
//Aqui es donde subo el video
<tr>
<td>Video (max 100MB):</td>
<td>
<input name="<? echo 'userfile6'; ?>" type="file" >
<input type="hidden" name="MAX_FILE_SIZE" value="100000000" >
<?
if (isset($nombre_archivo6))
{
print_r("Video: ".$nombre_archivo6." ");
}//if
?>
</td>
</tr>
//Aqui donde trato el archivo y llamo a la funcion subirarchivo
//subimos el video
if(isset($HTTP_POST_FILES['userfile6']) && $HTTP_POST_FILES['userfile6']['name']!="")
{
$nombre_archivo6 = $HTTP_POST_FILES['userfile6']['name'];
$tipo_archivo6 = $HTTP_POST_FILES['userfile6']['type'];
$tamano_archivo6 = $HTTP_POST_FILES['userfile6']['size'];
$tmp_name6=$HTTP_POST_FILES['userfile6']['tmp_name'];
echo "VIDEO: ".$HTTP_POST_FILES['userfile6']['name']."\n";
echo "<br>";
$idvideo=subirArchivo($db,$id,$dirArchivos,$nombre_archivo6,$tipo_archivo6,$tamano_archivo6,$tmp_name6);
echo "----".$tipo_archivo6. "----";
if($idvideo==null)
{
//No se ha insertado los contenido
echo "ERROR Insertanto Info del Video del Ejemplar ";
rollback();
} else {
echo "Video insertada correctamente";
echo "<br>";
commit();
//$insertado=true;
}//if
}//if
Espero que me podais ayudar.
GRacias y un cordial saludo