Foros del Web » Programando para Internet » PHP »

Problemas con propiedad size

Estas en el tema de Problemas con propiedad size en el foro de PHP en Foros del Web. Hola, estoy intentando subir archivops al servidor a travès de un formulario PHP, para poder controlar el tamaño de los archivos que voy a subir, ...
  #1 (permalink)  
Antiguo 17/08/2005, 12:07
 
Fecha de Ingreso: noviembre-2004
Mensajes: 31
Antigüedad: 13 años, 1 mes
Puntos: 0
Problemas con propiedad size

Hola, estoy intentando subir archivops al servidor a travès de un formulario PHP, para poder controlar el tamaño de los archivos que voy a subir, utilizo la propiedad size, pero siempre me devuelve cero como resultado.


ejemplo:


<body>
<form action="" method="post" enctype="multipart/form-data" name="form1">
<?php if (!$Enviar) {?>
<input type="hidden" name="MAX_FILE_SIZE" value="204800">
<table width="300" border="1" align="center">
<tr>
<td>Archivo:
<input type="file" name="archivo" ></td>
</tr>
<tr>
<?php
?>

<td><input type="submit" name="Enviar" value="Enviar"></td>
</tr>
</table>
<?PHP }else{
$MAX = $MAX_FILE_SIZE;
$TAM = $archivo_size;

if ($TAM > $MAX) {
echo "No se puede";
}else{
echo "SE PUEDE";
}

}?>
</form>
</body>

$TAM SIEMPRE ES CERO. Alguien me puede ayudar, porque no se que mas probar.

Gracias. Luciano
  #2 (permalink)  
Antiguo 17/08/2005, 12:18
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
De dónde sale el valor de $archivo_size?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #3 (permalink)  
Antiguo 18/08/2005, 07:40
 
Fecha de Ingreso: noviembre-2004
Mensajes: 31
Antigüedad: 13 años, 1 mes
Puntos: 0
sale de aca...

Hola DJNElson, ante todo gracias por leer mi pregunta. el valor de $archivo_size, sale supuestamente de:

<input type="file" name="archivo" >

segun la bibliografìa que tengo, me tendria que devolver el tamaño del archivo que quiero subir al servidor, pero no funciona.


Si me pueden dar una mano se lo agradezco infinitamente.



Saludos
  #4 (permalink)  
Antiguo 18/08/2005, 07:47
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
prueba con $_FILES['archivo']['size']

Un Saludo
  #5 (permalink)  
Antiguo 19/08/2005, 07:20
 
Fecha de Ingreso: noviembre-2004
Mensajes: 31
Antigüedad: 13 años, 1 mes
Puntos: 0
mas problemas...

Hola, probé con lo que me sugeriste:

prueba con $_FILES['archivo']['size']

pero no me funcionó. De todas maneras , intenté subir al servidor los archivos sin resticción de tamaño, y lamentablemente no me funcionó, a continuación, les muestro el código:

copy($archivo,'www/servers/lacostaturismo.com.ar/archivo.txt');

el error que me muestra es el siguiente:

Warning: copy(www/servers/lacostaturismo.com.ar/archivo.txt): failed to open stream: No such file or directory in /var/www/html/servers/lacostaturismo.com.ar/ArchivosPrueba.php on line 59

Puede ser que tenga que instalar alguna libreria, o me falte algún archivo? no entiendo por qué no funciona, supuestamente con esa sintaxis debería funcionar.


Muchjas Gracias. Luciano
  #6 (permalink)  
Antiguo 19/08/2005, 07:24
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
te esta diciendo que no esta bien el directorio asi que mira la ruta bien
a que carpeta quieres subir el archivo?
esta al mismo nivel que el php que se encarga de subir?¿

ademas cambia copy por move_uploaded_file

Un Saludo
  #7 (permalink)  
Antiguo 19/08/2005, 11:19
 
Fecha de Ingreso: noviembre-2004
Mensajes: 31
Antigüedad: 13 años, 1 mes
Puntos: 0
no tira error, pero no graba

Gracias por la ayuda, ahora no me tira el error que me hacia, pero no me graba, probé que me grabe en mi disco rígido, sospechaba que sea una cuestión de permisos en el servidor, y no grabó ni siquierda en el disco rígido.
la sintaxis es la siguiente:

move_uploaded_file('C:\hola.txt', 'C:\drivers\hola.txt' );

algo más me esta faltando?


Saludos.Luciano
  #8 (permalink)  
Antiguo 19/08/2005, 11:48
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Un ejemplo para que entiendas como funciona esto:

Código PHP:
<?php
  
//nombre que da php al archivo que sube (no el que tu quieras)
  
$miarchivotmp=$_FILES['archivo']['tmp_name'];
  
//nombre real que tiene el archivo que estoy subiendo (no tiene ruta)
  
$miarchivo=$_FILES['archivo']['name'];
  if(
is_uploaded_file($miarchivotmp))
  {
     
$tipo=$_FILES['archivo']['type'];
     
//filtro para que solo suba archivos de este tipo uso el mimetype
     
if ($tipo=="image/gif" || $tipo=="image/jpeg")
     
//muevo desde la carpeta temporal (definida en php.ini y con permisos de escritura)
     //al directorio donde quedará el archivo finalmente (tambien con permiso de escritura)
     
@move_uploaded_file($miarchivotmp,"../Imagenes/Equipos/$miarchivo");
  }

?>
  #9 (permalink)  
Antiguo 23/08/2005, 10:11
 
Fecha de Ingreso: noviembre-2004
Mensajes: 31
Antigüedad: 13 años, 1 mes
Puntos: 0
sigo con el problema

Claudio, probé de la forma que me sugeriste, no me muestra error, pero sigue sin subir el archivo al servidor. Puede ser que me falte algún permiso de escritura en el mismo? en ese caso, hay alguna forma de loguearse para subir el archivo?

Muchas gracias por su ayuda. Luciano
  #10 (permalink)  
Antiguo 23/08/2005, 10:15
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Muestra el codigo que usaste, y tambien el codigo de tu formulario.
  #11 (permalink)  
Antiguo 23/08/2005, 11:06
 
Fecha de Ingreso: noviembre-2004
Mensajes: 31
Antigüedad: 13 años, 1 mes
Puntos: 0
Ahi va el codigo...

<body>
<form method="post" action="ArchivosPrueba.php" enctype="multipart/form-data" name="form1">
<?php if (!$Enviar) {?>//MUESTRO EL FORMULARIO..

<input type="hidden" name="MAX_FILE_SIZE" value="204800">
<table width="300" border="1" align="center">
<tr>
<td>Archivo:
<input type="file" name="archivo" ></td>
</tr>
<tr>


<td><input type="submit" name="Enviar" value="Enviar"></td>
</tr>
</table>
</form>
<?PHP }else{
//SUBO EL ARCHIVO.......

$miarchivotmp=$_FILES['archivo']['tmp_name'];

$miarchivo=$_FILES['archivo']['name'];
move_uploaded_file($miarchivotmp, $miarchivo);

}?>

</body>
  #12 (permalink)  
Antiguo 23/08/2005, 11:27
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Prueba esto:

Código PHP:
<body>
<form method="post" action="ArchivosPrueba.php" enctype="multipart/form-data" name="form1">
<?php if (!$_POST['Enviar']) {?>//MUESTRO EL FORMULARIO..

<input type="hidden" name="MAX_FILE_SIZE" value="204800">
<table width="300" border="1" align="center">
<tr>
<td>Archivo:
<input type="file" name="archivo" ></td>
</tr>
<tr>
<td><input type="submit" name="Enviar" value="Enviar"></td>
</tr>
</table>
</form>
<?PHP }else{
//SUBO EL ARCHIVO.......

$miarchivotmp=$_FILES['archivo']['tmp_name'];

$miarchivo=$_FILES['archivo']['name'];
move_uploaded_file($miarchivotmp$miarchivo);

}
?>

</body>
  #13 (permalink)  
Antiguo 24/08/2005, 02:38
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
Un pequeño error de HTML en tu código claudiovega (que no debería afectar en el funcionamiento) es que imprimes la etiqueta de apertura del formulario aunque no se vaya a imprimir este; la condicional ha de ir antes. Igual habría que hacer uso de la función is_uploaded_file() pués una cosa es que se haya subido el archivo y otra colocarlo en su hubicación final.

lugimon: Tu código esta(ba) desactualizado; el uso de copy() es obsoleto, para recojer valores de un formulario debes hacer uso de variables superglobales.

Ve los siguientes enlaces:
www.forosdelweb.com/showthread.php?postid=238989
www.php.net/variables.external
www.php.net/features.file-upload

Hay FAQ que tratan sobre subir archivos a el servidor, además de ser tema común.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 06:44.