Foros del Web » Programando para Internet » PHP »

Por que no funciona bajo linux?

Estas en el tema de Por que no funciona bajo linux? en el foro de PHP en Foros del Web. Hola a to2!! He hecho un pequeño formulario en el que puedes subir ficheros a un servidor, y funciona perfectamente bajo guindus pero no bajo ...
  #1 (permalink)  
Antiguo 15/02/2003, 11:40
 
Fecha de Ingreso: febrero-2003
Mensajes: 15
Antigüedad: 21 años, 2 meses
Puntos: 0
Por que no funciona bajo linux?

Hola a to2!!
He hecho un pequeño formulario en el que puedes subir ficheros a un servidor, y funciona perfectamente bajo guindus pero no bajo linux, la variable que no consigo hacer funcionar es esta...
$nombrearch = "/root/fotos/".$_files["archivo"]["name"];

siendo:
$nombrearch:la variable que va a almacenar la ruta con el nombre del archivo
/root/fotos/ : El directorio donde se van a almacenar los archivos.
$_files["archivo"]["name"] El nombre del archivo que viene del formulario.
En fin que ese es el caso que no funciona bajo linux.
Si hago un print $nombrearch; me saca solamente /root/fotos/ sin el nombre del archivo.
Bajo windus ya os digo que funciona todo ok. Alguien me puede echar una mano??
gracias por adelantado.....
  #2 (permalink)  
Antiguo 15/02/2003, 11:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
1) .. usa preferentemente mayusculas .. para nombrar variables del servidor o PHP .. (Linux es "case sensitive" sensible a mayusculas .. al igual q PHP ).

$_FILES["archivo"]["name"]

2) revisa la versión de PHP q usas en el servidor " linux" .. El array superglobal $_FILES está disponible desde PHP 4.1.0 si mal no recuerdo .. Otra alternativa es usar: (pero igual solo está disponible en PHP 4.1.0 en adelante)

$HTTP_POST_FILES["archivo"]["name"]

o a malas ..

$archivo_name
(asumiendo como global el array files .. cosa q no es nadaaaa recomendable)

Un saludo,
  #3 (permalink)  
Antiguo 20/12/2006, 04:47
 
Fecha de Ingreso: julio-2004
Mensajes: 44
Antigüedad: 19 años, 8 meses
Puntos: 0
Re: Por que no funciona bajo linux?

Hola amigo, yo tengo el mismo problema, sobre guindows funciona perfect , cuando lo subo a mi server linux, las variables no toman valor, siempren estan vacias.

Nota:
1. Las variables estan bien escritas, lo que es mayusculas esta como debe ser.
2. la version del php es mayor a 4.3.1
3. probe tanto con $_FILES como con $HTTP_POST_FILES.-

Creeme que e recorrido medio internet, aun nadie me da una explicacion logica de pq las variables estan vacias.
  #4 (permalink)  
Antiguo 20/12/2006, 05:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: Por que no funciona bajo linux?

Cita:
Iniciado por tuweb Ver Mensaje
Hola amigo, yo tengo el mismo problema, sobre guindows funciona perfect , cuando lo subo a mi server linux, las variables no toman valor, siempren estan vacias.

Nota:
1. Las variables estan bien escritas, lo que es mayusculas esta como debe ser.
2. la version del php es mayor a 4.3.1
3. probe tanto con $_FILES como con $HTTP_POST_FILES.-

Creeme que e recorrido medio internet, aun nadie me da una explicacion logica de pq las variables estan vacias.
Deberías adjuntar el código completo que usas .. tanto PHP como de tu formulario HTML que usas (para ver su definición "multiparte").

Luego debes revisar tu configuración de PHP sobre Uplodad de archvios . .hay bastantes directivas que van a influir en si puedes o no hacer un "upload" de un archivo.

También es necesario que hagas pruebas con diferentes tipos de archivos y tamaños. Puedes tener problemas de restricción del tamaño de archivo a subir o formato MIME autorizado.

Todas estas directivas que afectan a dicho tema de configuración de PHP las tienes en la documentación oficial de PHP:

http://www.php.net/manual/en/features.file-upload.php

Cita:
Related Configurations Note: See also the file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size and max_input_time directives in php.ini
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 27/12/2006, 19:32
 
Fecha de Ingreso: julio-2004
Mensajes: 44
Antigüedad: 19 años, 8 meses
Puntos: 0
Re: Por que no funciona bajo linux?

aqui coloco el codigo que estou usando

este es la accion que invoca el form:

Código:
if($_GET['accion'] == "agregar_fotos"){
//datos de la imagen
$directorio = 'upload_galerias/';
$peso_maximo = '200';
$nombre_archivo = $_FILES['foto']['name'];
$extension = substr($nombre_archivo,-3);


   /if (!((strpos($tipo_archivo, "image/gif") || strpos($tipo_archivo, "image/jpeg")) && ($tamano_archivo < 1000 * $peso_maximo))) {
      si sobrepasa el limite o no es la extension muestro el error
      $error = 1;
   // si tiene peso correcto y extension procedo a subir imagen e insertar
    }else{
     //aqui subo el archivo a la carpeta 
        $id_gal = $_GET['id_gal'];
        $consulta = "insert into fotos(descripcion, foto, id_gal) values ('$_POST[descripcion]', '$nombre_archivo', '$_GET[id_gal]')";
        if($resultado = mysql_query($consulta, $conectar)){
           $id_foto_subida = mysql_insert_id();
           $nombre_final = "gal$id_gal"."_foto$id_foto_subida".".$extension";
           move_uploaded_file($_FILES['foto']['tmp_name'], $directorio . $nombre_final);
            // aqui edito el nombre original por el nombre id en la base de datos
           $consulta2 = "update fotos set foto = '$nombre_final' where id_foto = '$id_foto_subida' ";
           $resultado2 = mysql_query($consulta2, $conectar);
           echo "<script>alert('Agregado Satisfactoriamente! aqui $extension ')</script>";
		   echo "$extension";
           // muestro error si no se subio
           }else{ echo "<script> alert('····· ERROR ·····'); </script>";
           }
    }
}
Este es el form

Código:
<?
	$consulta = "select * from galeria where id_gal ='$_GET[id_gal]'";
	$resultado = mysql_query($consulta, $conectar);
	$array = mysql_fetch_array($resultado);
	?>
	<div style="background-image:url(imagenes/general/barra_titulo.jpg); background-repeat:no-repeat; padding-left: 13px;" >
		<span class="tahomaGris11"><b>Galeria | Agregar Foto | Galeria: *<?= pmayus($array[titulo]);?></b></span>
	</div>
	<br>
	<table width="600" border="0" cellspacing="2" cellpadding="2" align="center" style="background-color: #f9f9f9;">
		<form name="fAgregarFoto" method="post" action="?k=fotos&k2=agregar_fotos&accion=agregar_fotos&id_gal=<?=$_GET['id_gal']?>" enctype="multipart/form-data">
		<tr>
			<td colspan="4" align="center">
				<? if($error==1){
					echo "<span class=error><b>Error: Solo se permiten imagenes (.gif) o (.jpg) menores a $peso_maximo(k)</b></span>";
					}
				?>
			</td>
		<tr>
		<tr>
			<td>
				<span class="tahomaGris11"><b>Nombre:</b></span>
			</td>
			<td>
				<input type="text" name="descripcion" class="form_imput" size="40">
			</td>
			<td width="80">
				<span class="tahomaGris11"><b>Foto:</b></span>
			</td>
			<td valign="top">
				<input name="foto" type="file" class="form_imput">
			</td>
		</tr>
		<tr>
			<td colspan="4" align="center">
				<img src="images/spacer.gif" width="1" height="10">
			</td>
		</tr>
		<tr>
			<td colspan=4 align="center">
			<input type="hidden" name="accion" value="agregar_fotos">
			<input name="id_gal" type="hidden" value="<?=$_GET['id_gal'];?>">
			<input type="submit" name="Submit" value="Subir*Foto" class="form_imput">
			</td>
		</tr>
		</form>
	</table>

adicionalmente note esto:
1.save_mode en mi server esta en OFF
2.register_argc_argv en mi server esta en OFF

Este par en mi maquina local donde si funciona todo bien estan en ON, no se si eso me estara afectando?

Cluster Espero me puedas hechar una mano.

Gracias
  #6 (permalink)  
Antiguo 27/12/2006, 22:39
Avatar de m_sassa  
Fecha de Ingreso: noviembre-2002
Ubicación: Rio Cuarto - Córdoba - Argentina
Mensajes: 299
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Por que no funciona bajo linux?

algo asi al vuelo...

el permiso de la carpera...?

upload_galerias/

tiene que ser 777 ( o permitido para escritura )
__________________
"El paisano es la persona que lleva el paisaje en el alma"
Atahualpa Yupanqui
  #7 (permalink)  
Antiguo 30/12/2006, 11:37
 
Fecha de Ingreso: julio-2004
Mensajes: 44
Antigüedad: 19 años, 8 meses
Puntos: 0
Re: Por que no funciona bajo linux?

amigo m_sassa,

El problema no se genera al subir la foto a la carpeta, es al tratar de leer las variables $_FILES que contienen todos los datos del archivo a cargar.

Sigo sin ver la luz del sol con este problema :(
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 05:31.