Foros del Web » Programando para Internet » PHP »

PHP OO Necesito añadir una función php a mi upload

Estas en el tema de Necesito añadir una función php a mi upload en el foro de PHP en Foros del Web. HOLA QUIERO AGREGAR UNA FUNCIÓN A MI UPLOAD COMO LA DE ESTE UPLOAD QUE RENOMBRA LOS ARCHIVOS Y KIERO LA TIPICA FUCION RAND XD: PARTE ...
  #1 (permalink)  
Antiguo 08/12/2014, 19:18
 
Fecha de Ingreso: diciembre-2014
Mensajes: 1
Antigüedad: 9 años, 4 meses
Puntos: 0
Busqueda Necesito añadir una función php a mi upload

HOLA QUIERO AGREGAR UNA FUNCIÓN A MI UPLOAD COMO LA DE ESTE UPLOAD QUE RENOMBRA LOS ARCHIVOS Y KIERO LA TIPICA FUCION RAND XD:
PARTE 1 X K SON 3 ARCHIVOS LOS K MANEJA

index

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Multiple uploads con php</title>
</head>
<body>
<form action="upload.php" method="post" accept-charset="utf-8" enctype="multipart/form-data">
<label>Archivo 1:</label><input type="file" name="userfile[]" /><br /><br />
<label>Archivo 2:</label><input type="file" name="userfile[]" /><br /><br />
<label>Archivo 3:</label><input type="file" name="userfile[]" /><br /><br />
<label>Archivo 4:</label><input type="file" name="userfile[]" /><br /><br />
<input type="submit" value="Subir imágenes" />
</form>
</body>
</html>

PARTE 2
upload

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?php
//solo se puede acceder si es una peticion post
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
//llamamos a la clase multiupload
require_once("multiupload.php");
//array de campos file del formulario
$files = $_FILES['userfile']['name'];
//creamos una nueva instancia de la clase multiupload
$upload = new Multiupload();
//llamamos a la funcion upFiles y le pasamos el array de campos file del formulario
$isUpload = $upload->upFiles($files);

}else{
throw new Exception("Error Processing Request", 1);
}
?>
</body>
</html>

PARTE 3
multiupload

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?php
class Multiupload
{

/**
*sube archivos al servidor a través de un formulario
*@access public
*@param array $files estructura de array con todos los archivos a subir
*/
public function upFiles($files = array())
{
//inicializamos un contador para recorrer los archivos
$i = 0;

//si no existe la carpeta files la creamos
if(!is_dir("files/"))
mkdir("files/", 0777);

//recorremos los input files del formulario
foreach($files as $file)
{
//si se está subiendo algún archivo en ese indice
if($_FILES['userfile']['tmp_name'][$i])
{
//separamos los trozos del archivo, nombre extension
$trozos[$i] = explode(".", $_FILES["userfile"]["name"][$i]);

//obtenemos la extension
$extension[$i] = end($trozos[$i]);

//si la extensión es una de las permitidas
if($this->checkExtension($extension[$i]) === TRUE)
{

//comprobamos si el archivo existe o no, si existe renombramos
//para evitar que sean eliminados
$_FILES['userfile']['name'][$i] = $this->checkExists($trozos[$i]);

//comprobamos si el archivo ha subido
if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i],"files/".$_FILES['userfile']['name'][$i]))
{
echo "subida correctamente";
//aqui podemos procesar info de la bd referente a este archivo
}
//si la extension no es una de las permitidas
}else{
echo "la extension no esta permitida";
}
//si ese input file no ha sido cargado con un archivo
}else{
echo "sin imagen";
}
echo "<br />";
//en cada pasada por el loop incrementamos i para acceder al siguiente archivo
$i++;
}
}

/**
*funcion privada que devuelve true o false dependiendo de la extension
*@access private
*@param string
*@return boolean - si esta o no permitido el tipo de archivo
*/
private function checkExtension($extension)
{
//aqui podemos añadir las extensiones que deseemos permitir
$extensiones = array("jpg","png","gif","pdf");
if(in_array(strtolower($extension), $extensiones))
{
return TRUE;
}else{
return FALSE;
}
}

/**
*funcion que comprueba si el archivo existe, si es asi, iteramos en un loop
*y conseguimos un nuevo nombre para el, finalmente lo retornamos
*@access private
*@param array
*@return array - archivo con el nuevo nombre
*/
private function checkExists($file)
{
//asignamos de nuevo el nombre al archivo
$archivo = $file[0] . '.' . end($file);
$i = 1;
//mientras el archivo exista entramos
while(file_exists('files/'.$archivo))
{
$i++;
$archivo = $file[0]."(".$i.")".".".end($file);
}
//devolvemos el nuevo nombre de la imagen, si es que ha
//entrado alguna vez en el loop, en otro caso devolvemos el que
//ya tenia
return $archivo;
}
}
?>
</body>
</html>
Y ESTE ES MI UPLOAD
http://pagina-web-del-grupo.host22.com/upload/archivos/index.rar ese es el codigo

Etiquetas: formularios, funciones, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:51.