Foros del Web » Programando para Internet » PHP »

¿Problema con script para hacer upload en host pago?

Estas en el tema de ¿Problema con script para hacer upload en host pago? en el foro de PHP en Foros del Web. ¿Problema con script para hacer upload en host pago? El siguiente script que uso es muy sencillo, me funciona perfecto en local, y en un ...
  #1 (permalink)  
Antiguo 29/08/2008, 12:09
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 18 años, 7 meses
Puntos: 0
¿Problema con script para hacer upload en host pago?

¿Problema con script para hacer upload en host pago?

El siguiente script que uso es muy sencillo, me funciona perfecto en local, y en un host gratuito en tripod.lycos.es también me funcionaba en el host pago que ahora tengo el problema, será que alguien me modifico algo porque es muy raro que no sirva.


Código PHP:
<?php
if(isset($submit)){
        if (
is_uploaded_file($_FILES['imagen']['tmp_name'])) {
                
//revisamos que sea jpg
                
if ($_FILES['imagen']['type'] == "image/jpeg" || $_FILES['imagen']['type'] == "image/pjpeg"){
                        
//nuevo nombre para la imagen
                        
$nuevoNombre time().".jpg";
                        
//movemos la imagen
                        
move_uploaded_file($_FILES['imagen']['tmp_name'], "fotografias/$nuevoNombre");
                        
//obtenemos la inforamción
                        
$data GetImageSize("fotografias/$nuevoNombre");
                        
//mensaje de éxito
                        
echo "<img src='fotografias/$nuevoNombre' $data[3]> <br> imagen $nuevoNombre subida con éxito";
                }else{
                        echo 
"Formato no válido para fichero de imagen";
                }
        } else {
                echo 
"Error al cargar imagen: " $_FILES['imagen']['name'];
        }
}
?>

<form enctype="multipart/form-data" action="<? echo $PHP_SELF;?>" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Subir esta imagen: <input name="imagen" type="file">
<input type="submit" name='submit' value="Subir Fichero">
</form>

Mirando la configuración del phpinfo()
Veo que tengo habilitado el file_uploads On
upload_max_filesize 8M

pero en el formulario amplio usando MAX_FILE_SIZE 100000

aunque veo el upload_tmp_dir esta en: no value

podrá ser esto?

Sabe que mas debo mirar
Gracias de antemano.
  #2 (permalink)  
Antiguo 29/08/2008, 12:30
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: ¿Problema con script para hacer upload en host pago?

y que error te envia???
lo otro no sera que la carpeta fotografias/ que tienes se le fueron los permisos de escritura?
a mi me paso a veces cambian las cosas a otro server mas grande etc... y algunas configuraciones se pierden sobre todo la de las carpetas puestas a manita con ftp o el cpanel etc....
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 29/08/2008, 12:40
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: ¿Problema con script para hacer upload en host pago?

Mas que todo es permisos tio, entra con el software, CuteFTP y cambiale permisos a tus carpetas donde haces el upload y por ultimo... permisos del servidor....
Por otro lado, no te recomiendo utilizar:
action="<? echo $PHP_SELF;?>"
te recomiendo, cambialo y no pongas action, igual va enviar al mismo archivo, ya que si colocas el php_self, tu formulario es vulnerable a ataques.... y te rompen tu servidor... o ya tu ve ps.

solo es un consejo del colaborador masterojitos.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 29/08/2008, 14:33
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 18 años, 7 meses
Puntos: 0
De acuerdo Respuesta: ¿Problema con script para hacer upload en host pago?

Gracias por contestar Kaninox y Masterojitos.

Ahhh habia olvidado comentar eso

no es lo de los permiso de la carpeta fotografias ya que tienen los permisos de escritura ( 777 ), uso Filezilla pero ¿donde veo los permisos de servidor ?.

No sabia que fuera peligroso usar : action="<? echo $PHP_SELF;?>"
Lo tendré en cuenta.

Y no arroja ningún error al tratar de subirlo simplemente no lo hace.
  #5 (permalink)  
Antiguo 29/08/2008, 14:43
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: ¿Problema con script para hacer upload en host pago?

Cita:
Iniciado por jpunk Ver Mensaje
Gracias por contestar Kaninox y Masterojitos.

Ahhh habia olvidado comentar eso

no es lo de los permiso de la carpeta fotografias ya que tienen los permisos de escritura ( 777 ), uso Filezilla pero ¿donde veo los permisos de servidor ?.

No sabia que fuera peligroso usar : action="<? echo $PHP_SELF;?>"
Lo tendré en cuenta.

Y no arroja ningún error al tratar de subirlo simplemente no lo hace.
Man creo que es a la hora de comparar los tipos.......

Mira te dejo mi codigo.... cambia la carpeta y variables y punto:
Código PHP:
$status "";
if (isset(
$_POST["enviar"])) {
    
// obtenemos los datos del archivo 
    
$tamano $_FILES["archivo"]['size'];
    
$tipo $_FILES["archivo"]['type'];
    
$archivo $_FILES["archivo"]['name'];
    
$prefijo substr(md5(uniqid(rand())),0,6);
    
    
$extension explode(".",$archivo);
    
$num count($extension)-1;
    
$nombre=basename($archivo,".".$extension[$num]);//nombre base del archivo
    
$imagen=$nombre."_".$prefijo.".".$extension[$num];//nombre real de la imagen
    
if ($archivo != "") {
        
$ext=strtolower($extension[$num]);
        if(
$ext=='jpg' or $ext=='gif' or $ext=='png'){
            
// guardamos el archivo a la carpeta files
            
$destino =  "../../images/image/".$imagen;
            if (
copy($_FILES['archivo']['tmp_name'],$destino)){
                
$status "Archivo subido: <b>".$imagen."</b>";
            } else {
                
$status "Error: No se logro subir el archivo";
            }
        } else {
                
$status "Error: Solo se permiten imagenes (*.jpg,*.gif,*.png)";
        }
    } else {
        
$status "Error: Imagen no encontrada para subir al Servidor";
    }

Si te sirvio de algo... aunmenta mi karma ps... gracias a ti.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #6 (permalink)  
Antiguo 30/08/2008, 08:04
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: ¿Problema con script para hacer upload en host pago?

Masterojitos

No he podido hacer funcionar tu código, podrías colocar también la parte del formulario.

Estoy añadiendo lo que yo tenia de mi formulario, y cambiando las rutas donde se guardara la imagen y nada.

Hey y eso del karma no te entendí….

Gracias man por la ayuda.
  #7 (permalink)  
Antiguo 30/08/2008, 08:12
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: ¿Problema con script para hacer upload en host pago?

Que tal jpunk, te da algún error?, publica los códigos que estas utilizando actualmente así será mas facil identificar el problema.




Saludos.
  #8 (permalink)  
Antiguo 01/09/2008, 09:33
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: ¿Problema con script para hacer upload en host pago?

Cita:
Iniciado por jpunk Ver Mensaje
Masterojitos

No he podido hacer funcionar tu código, podrías colocar también la parte del formulario.

Estoy añadiendo lo que yo tenia de mi formulario, y cambiando las rutas donde se guardara la imagen y nada.

Hey y eso del karma no te entendí….

Gracias man por la ayuda.
mejor pideme todo ps men....

toma ayi te va el codigo completo:

upload.php
Código PHP:
<?php 
$status 
"";
if (
$_POST["action"] == "upload") {
    
// obtenemos los datos del archivo 
    
$tamano $_FILES["archivo"]['size'];
    
$tipo $_FILES["archivo"]['type'];
    
$archivo $_FILES["archivo"]['name'];
    
$prefijo substr(md5(uniqid(rand())),0,6);
    
    if (
$archivo != "") {
        
// guardamos el archivo a la carpeta files
        
$destino =  "files/".$prefijo."_".$archivo;
        if (
copy($_FILES['archivo']['tmp_name'],$destino)) {
            
$status "Archivo subido: <b>".$archivo."</b>";
        } else {
            
$status "Error al subir el archivo";
        }
    } else {
        
$status "Error al subir archivo";
    }
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PHP upload - MasterOjitos</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="413" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="413" height="40" class="titulo">PHP upload - MasterOjitos</td>
  </tr>
  <tr>
    <td class="text">Por favor seleccione el archivo a subir:</td>
  </tr>
  <tr>
  <form action="upload.php" method="post" enctype="multipart/form-data">
    <td class="text">
      <input name="archivo" type="file" class="casilla" id="archivo" size="35" />
      <input name="enviar" type="submit" class="boton" id="enviar" value="Upload File" />
      <input name="action" type="hidden" value="upload" />      </td>
    </form>
  </tr>
  <tr>
    <td class="text" style="color:#990000"><?php echo $status?></td>
  </tr>
  <tr>
    <td height="30" class="subtitulo">Listado de Archivos Subidos </td>
  </tr>
  <tr>
    <td class="infsub">
    <?php 
    
if ($gestor opendir('files')) {
        echo 
"<ul>";
        while (
false !== ($arch readdir($gestor))) {
           if (
$arch != "." && $arch != "..") {
               echo 
"<li><a href=\"files/".$arch."\" class=\"linkli\">".$arch."</a></li>\n";
           }
        }
        
closedir($gestor);
        echo 
"</ul>";
    }
    
?>    </td>
  </tr>
</table>
</body>
</html>
estilo.css
Código HTML:
.titulo {
	font-family: "Trebuchet MS", Verdana;
	font-size: 18px;
	font-weight: bolder;
	color: #990000;
	text-decoration: none;
	border-top-width: 1px;
	border-bottom-width: 2px;
	border-top-style: solid;
	border-bottom-style: solid;
	border-top-color: #D4D0C8;
	border-bottom-color: #D4D0C8;
	text-align: left;
	padding-left: 30px;
}
.casilla {
	font-family: "Trebuchet MS", Verdana;
	font-size: 11px;
	font-weight: normal;
	color: #999999;
	text-decoration: none;
	border: 1px solid #D4D0C8;
}
.boton {
	border: 1px solid #D4D0C8;
	font-family: "Trebuchet MS", Verdana;
	font-size: 10px;
	font-weight: bold;
	color: #990000;
	text-decoration: none;
	background-color: #D4D0C8;
	vertical-align: middle;
}
.subtitulo {
	font-family: "Trebuchet MS", Verdana;
	font-size: 16px;
	font-weight: bolder;
	color: #999999;
	text-decoration: none;
	text-align: left;
	padding-left: 30px;
}
.subtitulo:hover {
	font-family: "Trebuchet MS", Verdana;
	font-size: 16px;
	font-weight: bolder;
	color: #999999;
	text-decoration: underline;
	text-align: center;
}
.subtext {
	font-family: "Trebuchet MS", Verdana;
	font-size: 12px;
	font-weight: normal;
	color: #999999;
	text-decoration: none;
	text-align: left;
	padding-left: 30px;
	background-color: #EFEFEF;
}
.infsub {

	font-family: "Trebuchet MS", Verdana;
	text-decoration: none;
	border-top-width: 1px;
	border-top-style: solid;
	border-top-color: #D4D0C8;
}
.text {
	font-family: "Trebuchet MS", Verdana;
	font-size: 12px;
	font-weight: normal;
	color: #999999;
	text-decoration: none;
	text-align: left;
	padding-left: 30px;
	padding-top: 10px;
}
.link {

	font-family: "Trebuchet MS", Verdana;
	font-size: 12px;
	font-weight: bolder;
	color: #990000;
	text-decoration: none;
	text-align: center;
}
a.link:hover {


	font-family: "Trebuchet MS", Verdana;
	font-size: 12px;
	font-weight: bolder;
	color: #990000;
	text-decoration: underline;
	text-align: center;
}
li {
	list-style-type: circle;
	font-size: 16px;
	text-decoration: none;
}
.linkli {


	font-family: "Trebuchet MS", Verdana;
	font-size: 12px;
	font-weight: normal;
	color: #0000C0;
	text-decoration: none;
}
a.linkli:hover {



	font-family: "Trebuchet MS", Verdana;
	font-size: 12px;
	font-weight: normal;
	color: #0000C0;
	text-decoration: underline;
}
y por ultimo te creas en el mismo lugar una carpeta con el nombre files........

y eso seria todo men.... a con respecto a lo del karma, es para que si te sirve mi respuesta, para que me des unos puntitos a mi favor, dandole click a ese jin yang que aparece como icono debajo de mi avatar.... a la isquierda, nada mas que eso.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #9 (permalink)  
Antiguo 01/09/2008, 13:28
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 18 años, 7 meses
Puntos: 0
De acuerdo Respuesta: ¿Problema con script para hacer upload en host pago?

Masterojitos gracias nuevamente.

Buen código ya lo probé en el host remoto y funciona perfecto, pensé que era obligatorio usar is_uploaded_file no lo usas pero veo que funciona bien.

Interesante código gracias man en verdad me será de mucha utilidad, y además me entere lo del karma no tenia ni idea de esa parte…

Ahí te ganaste los puntos que decís…

Gracias y chauuu.
  #10 (permalink)  
Antiguo 01/09/2008, 15:08
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: ¿Problema con script para hacer upload en host pago?

Muchas gracias por los puntos jpunk, cuando gustes... ayi estare.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
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 19:51.