Ver Mensaje Individual
  #9 (permalink)  
Antiguo 15/10/2003, 23:15
heraldex
 
Fecha de Ingreso: octubre-2003
Ubicación: Concepción
Mensajes: 84
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola a todos, tengo el mismo problema que Sir Kevin con los uploads. Estoy trabajando con archivos de imagen dejandolas en una carpeta images/ dentro de mi directorio public_html. La lectura del archivo desde el formulario funciona bien y estoy utilizando move_uploaded_files() para copiar el archivo a su destino, ademas estoy ocupando rutas relativas al script en ejecucion. El resultado es el mismo mensaje de error: "Warning: copy(a.jpg): failed to open stream: Permission denied ". Gerald menciono los permisos sobre el archivo, mas bien sobre la carpeta en la que estoy dejando los archivos, el problema es que si la dejo en 777 (o similar permitiendo que otros puedan escribir en ella) podria generar un problema de seguridad (de ser detectado). De todas formas al cambiar los permisos de la carpeta el script realizao la copia sin problemas, si cambio el permiso, el script falla, si cambio el dueño de la carpeta al usuario bajo el cual corre apache el script funciona sin problemas, si lo dejo como el usuario dueño del script, este falla. ¿Donde está el problema?. Aca va el segmento de codigo donde realizo el upload:

$upload_dir="../images/"; //directorio de imagenes en el servidor
/******* Obtener la Informacion de la imagen leida ******/
$imagen_nombre_temporal=$_FILES['pic']['tmp_name'] ; //Ruta y nombre temporal de la imagen
$imagen_contenido = addslashes(fread(fopen($imagen_nombre_temporal, "rb"), filesize($imagen_nombre_temporal))); //Contenido
$imagen_tipo=$_FILES['pic']['type']; //tipo de la imagen image/gif o image/jpeg
/******** Guardar la imagen con el nombre del codigo de producto para evitar repeticiones *******/
/******** por parte del usuario **********/
/** Para crear el nombre correcto se debe preguntar de que tipo es para concatenar la extension correcta */
if ($imagen_tipo=='image/gif')
$imagen_nombre="".$_POST['codigo'].".gif"; //nombre de la imagen
if ($imagen_tipo=='image/pjpeg')
$imagen_nombre="".$_POST['codigo'].".jpg"; //nombre de la imagen
if ($imagen_tipo=='image/jpeg')
$imagen_nombre="".$_POST['codigo'].".jpg"; //nombre de la imagen
$destino=$upload_dir;
$destino.=$imagen_nombre; //se concatena la ruta de destino y el nombre
/******** Escribir el archivo de salida *************/

if (!move_uploaded_file($imagen_nombre_temporal,$dest ino))
{
echo "failed to copy ".$imagen_nombre_temporal."...<br>\n";
exit;
}
/************************************************** ******/

Saludos a todos y gracias