Foros del Web » Programando para Internet » PHP »

Error con el Upload archivo

Estas en el tema de Error con el Upload archivo en el foro de PHP en Foros del Web. Hola, Leí este tutorial para el upload de archivos : http://www.forosdelweb.com/showthrea...hreadid=112025 Todo perfecto, pero... Para comprobar que solo me puedan enviar archivos .txt por ejemplo ...
  #1 (permalink)  
Antiguo 07/07/2005, 18:10
Jep
 
Fecha de Ingreso: febrero-2005
Mensajes: 42
Antigüedad: 12 años, 10 meses
Puntos: 0
Error con el Upload archivo

Hola,
Leí este tutorial para el upload de archivos : http://www.forosdelweb.com/showthrea...hreadid=112025
Todo perfecto, pero...
Para comprobar que solo me puedan enviar archivos .txt por ejemplo pongo
if($_FILES['archivo']['type'] == "text/plain"){

Y resulta que si cambio la extension de un archivo .exe a .txt por ejemplo me lo envía igual!
Puedo ser que falle eso:
$_FILES['archivo']['type'] == "text/plain"
??
Ayuda porfavor!
  #2 (permalink)  
Antiguo 07/07/2005, 20:27
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 13 años, 10 meses
Puntos: 0
por que no pones el codigo para ver en que fallas?
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl
  #3 (permalink)  
Antiguo 09/07/2005, 04:32
Jep
 
Fecha de Ingreso: febrero-2005
Mensajes: 42
Antigüedad: 12 años, 10 meses
Puntos: 0
<html>
<head>
<title>Subir un archivo</title>
</head>
<body>
<?php
session_start();
include "autcp.inc.php";
if (!isset($_POST["submit"])){
?>
<form action="upload.php" method="post" name="miformu" enctype="multipart/form-data">
<input name="archivo" type="file">
<input type="submit" name="submit" value="Subir">
</form>
<?php
}
else{
if($_FILES['archivo']['type'] == "text/plain"){
if($_FILES['archivo']['size'] < 30000){
if(move_uploaded_file($archivo, "archivos/".$_FILES['archivo']['name'])){
echo "Archivo subido con exito";
}
else{
echo "Error al subir el archivo";
}
}
else{
echo "El archivo es mas grande de 30kb";
}
}
else{
echo "El formato del archivo no es valido, solo .txt";
}
}
?>

</body>
</html>



A ver si encontráis el error! :(
  #4 (permalink)  
Antiguo 09/07/2005, 04:51
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Primero... tienes un error... cambia esto:
Código PHP:
if(move_uploaded_file($archivo"archivos/".$_FILES['archivo']['name'])){ 
por esto:
Código PHP:
if(move_uploaded_file($_FILES['archivo']['tmp_name'], "archivos/".$_FILES['archivo']['name'])){ 
... ahora, respecto a
Cita:
Iniciado por Jep
Y resulta que si cambio la extension de un archivo .exe a .txt por ejemplo me lo envía igual!
... claro, estás validando el archivo por su contenido, no por su extención... lo cuál es bueno --muy bueno--. Así como cambiaste un .txt por .exe (la extención no hace el programa) piensa que alguien puede cambiar un .exe por .txt... así se propagan los virus...

Entonces... mejor hacerlo de las dos maneras. Cambia esto:
Código PHP:
if($_FILES['archivo']['type'] == "text/plain"){ 
por esto:
Código PHP:
if($_FILES['archivo']['type'] == "text/plain" && substr($_FILES['archivo']['name'], -33)=="txt"){ 
Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 09/07/2005, 07:32
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 2 meses
Puntos: 5
También... si quieres por ejemplo enviar .exe, puedes usar la extensión MIME apropiada. El array superglobal $_FILES funciona con MIME Types. Aca tienes la lista de los MIME Suffixes para que la uses dependiendo del archivo que quieras aprobar:

http://www.duke.edu/websrv/file-extensions.html

Y aca tienes otra más completa:

http://www.webmaster-toolkit.com/mime-types.shtml

Saludos,
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #6 (permalink)  
Antiguo 09/07/2005, 10:28
Jep
 
Fecha de Ingreso: febrero-2005
Mensajes: 42
Antigüedad: 12 años, 10 meses
Puntos: 0
Gracias jam1138!
Duda resuelta!
gracias por la lista de los MIME Sufixes takitei
;P
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 08:09.