Tutorial: Como hacer un host de archivos en PHP

Wocker Seguir

Épsilon
Social Media
Desde
31 May 2011
Mensajes
920
Hoy venimos con un tutorial de como hacer un host de archivos en PHP para los que esten interesados.
Lo primero que vamos a hacer es a crear un archivo index.html con el siguiente codigo:
Insertar CODE, HTML o PHP:
<form action="<?=$PHP_SELF?>" method="post" name="form1" enctype="multipart/form-data">
<p align="center">Archivo
<input id="archivo" type="file" name="archivo" /></p>
<p align="center">Archivo
<input id="archivo" type="file" name="archivo" /></p>
<p align="center">Archivo
<input id="archivo" type="file" name="archivo" /></p>
<p align="center">Archivo
<input id="archivo" type="file" name="archivo" /></p>
<p align="center">Archivo
<input id="archivo" type="file" name="archivo" /></p>
<p align="center">Archivo
<input id="archivo" type="file" name="archivo" /></p>
<p align="center">Archivo
<input id="archivo" type="file" name="archivo" /></p>
<p align="center">Archivo
<input id="archivo" type="file" name="archivo" /></p>
<p align="center"><input id="boton" type="submit" name="boton" value="Enviar" /></p>
Con ese archivo ya tenemos la mitad de nuestro host de archivos ahora creemos un archivo de
nombre $PHP_SELF.php y le ponemos el siguiente código:
Insertar CODE, HTML o PHP:
<? 
if($boton) { 
 if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) { 
 copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']); 
 $subio = true; 
 } 

if($subio) { 
 echo "El archivo ha sido subido "; 
} else { 
 echo "Verifica tu archivo"; 
} 
die(); 
} 
?>
Y con eso lo único que nos falta es darle los permisos 707 a la carpeta que queremos
que almacene nuestro archivos.
Nos debe quedar algo mas o menos así
php-host-1024x527.png

Fuente
 
Última edición:
Desde
16 Oct 2010
Mensajes
3.090
Pues a mi no me funciona el code con esa explicación que das, lo probe en mi host y no me sube nada, me manda una página de error... :/
 

eem

Gamma
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
3 Feb 2011
Mensajes
234
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Probando....
 

PaSoLa

Delta
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
31 Oct 2010
Mensajes
545
Siempre es bueno aprender cada día mas un poco de HTML :biggrin:
 

blueshadow

Beta
Redactor
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
12 Ago 2011
Mensajes
109
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
probando poes !
 

BrianUR

Gamma
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
17 Ago 2009
Mensajes
191
Así por encima se ve que no existe la variable boton por lo que nunca va funcionar el script.
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.070
vamos a hacer funcionar el script:
PHP:
<?php
if(isset($_FILES['archivo'])){
	foreach($_FILES['archivo']['error'] as $K=>$_E){
		if ($_E == UPLOAD_ERR_OK) {
			$A = 'upload/'.DameNombre($_FILES["archivo"]["name"][$K]);
			move_uploaded_file($_FILES["archivo"]["tmp_name"][$key],$A) or die("Ocurrio un problema al intentar subir el archivo.");
		}
	}
}else{
	echo '<form action="" method="POST" enctype="multipart/form-data">';
	for($x=1;$x<=10;$x++){
		echo 'Archivo '.$x.': <input type="file" name="archivo[]"><br/>';
	}
	echo '<input type="submit"></form>';
}
?>
1- el script esta mal programado, jamas vas a crear un archivo llamado $PHP_SELF, eso es 0 conocimientos de PHP... $PHP_SELF hace referencia al archivo en que se encuentra el codigo.. y si tu pones un index.html con codigo PHP JAMAS funcionaria!!!
2- el script tuyo jamas subira mas de un archivo, ya que no tienes un bucle para poder subirlos...
3- Antes de hacer copy & paste de algo que no sabes ni como funciona, ni como explicarlo, no lo hagas!

Ahora expliquemos la solucion a el "script..."
El script permite subir hasta 10 archivos al mismo tiempo, el bucle recorre las variables de los errores, si no a dado error sube el archivo, de lo contrario no lo sube, y el nombre del archivo es un md5.extencion, ejemplo si el nombre del archivo es pepe.jpg, este seria 926e27eecdbc7a18858b3798ba99bddd.jpg
 
Arriba