Foros del Web » Programando para Internet » PHP »

ayuda subiendo fotos al servidor

Estas en el tema de ayuda subiendo fotos al servidor en el foro de PHP en Foros del Web. Tengo un problema con el código que coloco a continuación. Me salen este error: Warning: Unable to create 'foto.jpg': Permiso denegado El servidor que utilizo ...
  #1 (permalink)  
Antiguo 15/03/2004, 12:20
 
Fecha de Ingreso: marzo-2003
Ubicación: Bogotá
Mensajes: 199
Antigüedad: 21 años, 1 mes
Puntos: 0
ayuda subiendo fotos al servidor

Tengo un problema con el código que coloco a continuación.
Me salen este error:

Warning: Unable to create 'foto.jpg': Permiso denegado

El servidor que utilizo no es propio, esta en EU, entonces no puedo hacer cambios a la configuración.


Este es el código utilizado :

<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";

//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?>

************************************
Tambien utilice este otro código
************************************

<?php
//formulario de upload por jorge luis martinez
//http://miscodigos.jlmnetwork.com/
$extension = explode(".",$Archivo_name);
$num = count($extension)-1;
if($extension[$num] == "jpg")
{
if($archivo_size < 30000)
{
if(!copy($archivo, "archivos/".$Archivo_name)
{
echo "error al copiar el archivo";
}
else
{
echo "archivo subido con exito";
}
}
else
{
echo "el archivo supera los 30kb";
}
}
else
{
echo "el formato de archivo no es valido, solo .jpg";
}
?>


y tampoco, que puede ser. Gracias de antemano por su ayuda.

No se si pueda encontrar documentación adicional en algun otro lado (en español preferiblemente), gracias.
  #2 (permalink)  
Antiguo 15/03/2004, 13:43
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
Primero tienes de ver que la carpeta donde vas a subir el archivo tenga prmisos de escritura, y luego tienes de darle el path o ruta donde vas a guardar este archivo

tu tienes
Código PHP:

if (move_uploaded_file($HTTP_POST_FILES['userfile']['
tmp_name'
], $nombre_archivo)){ 

// deberia ser 

if (move_uploaded_file($HTTP_POST_FILES['userfile']['
tmp_name'
], 'ruta_carpeta/'.$nombre_archivo)){ 
esepro que te sirva

saludos
  #3 (permalink)  
Antiguo 15/03/2004, 14:03
Avatar de Titos  
Fecha de Ingreso: agosto-2002
Mensajes: 116
Antigüedad: 21 años, 7 meses
Puntos: 3
Te paso mi código

Hola,


Te paso mi código para subir fotos, pruebalo y me dices...


<?php

// Script: Subir fotos al servidor
// Hecho en Venezuela, Por: Jorge De Freitas
// http://www.jjcreaciones.com


$newfoto = sprintf ("fotos/%s",$foto_name);

$extension = explode(".",$foto_name);
$num = count($extension)-1;

if($extension[$num] == "jpg") {
} else {
echo "El formato de archivo no es valido, solo .jpg<BR><BR><a href='javascript:history.back(1)'>Haz clic aquí, para regresar</a><BR><BR><BR><BR><BR><BR><BR>";
exit;
}


if($foto_size < 100000) {
} else {
echo "La foto supera los 100kb, reduzca su peso en kb<BR><BR><a href='javascript:history.back(1)'>Haz clic aquí</a>Para Regresar al Formulario<BR><BR><BR><BR><BR><BR><BR>";
exit;
}

if (isset ($submit)) {
move_uploaded_file ($foto,$newfoto);

echo "la Foto ha sido cargada correctamente.";

}
?>

Saludos
__________________
Saludos a Tod@s... :adios:
  #4 (permalink)  
Antiguo 16/03/2004, 13:28
 
Fecha de Ingreso: marzo-2003
Ubicación: Bogotá
Mensajes: 199
Antigüedad: 21 años, 1 mes
Puntos: 0
No me funciona el upload

Nada que me funciona, tengo este código (funciona bien en mi equipo apache, php 4..., bajo windows 2000), pero al pasarlo al servidor me sale este error :

/tmp/phpjzJwty
Warning: copy(nuevo.jpg): failed to open stream: Permission denied in /home/miserver/public_html/inscripcionexalumnas.php on line 90


#Aquí realizamos la carga del fichero
if(isset($cargar)){

#Le damos al fichero un nuevo nombre
$nuevositio = "nuevo.jpg";
echo($elFichero);
#Lo copiamos
if(!copy($elFichero,$nuevositio)){
echo "NO SE HA PODIDO SUBIR EL FICHERO";
}
else{
echo "FICHERO SUBIDO CON ÉXITO";
}

}

?>

Que puedo hacer?? gracias por su ayuda
  #5 (permalink)  
Antiguo 16/03/2004, 13:51
Avatar de Titos  
Fecha de Ingreso: agosto-2002
Mensajes: 116
Antigüedad: 21 años, 7 meses
Puntos: 3
explico mejor

Te doy el código mas fácil explicando cada cosa:


- formulario.htm

<form name="formulario" method="post" action="subir.php" enctype="multipart/form-data">
<input name="foto" size="20" type="file" id="foto">
<input type="submit" name="submit" value="Enviar">
</form>


- subir.php


<?php

// Script: Subir fotos al servidor
// Hecho en Venezuela, Por: Jorge De Freitas
// http://www.jjcreaciones.com


//carpeta /fotos en donde guardamos las imagenes.
$newfoto = sprintf ("fotos/%s",$foto_name);

//la extencion del archivo aceptado
$extension = explode(".",$foto_name);
$num = count($extension)-1;

if($extension[$num] == "jpg") {
} else {
echo "El formato de archivo no es valido, solo .jpg<BR><BR><a href='javascript:history.back(1)'>Haz clic aquí, para regresar</a><BR><BR><BR><BR><BR><BR><BR>";
exit;
}

//tamaño del archivo aceptado.
if($foto_size < 100000) {
} else {
echo "La foto supera los 100kb, reduzca su peso en kb<BR><BR><a href='javascript:history.back(1)'>Haz clic aquí</a>Para Regresar al Formulario<BR><BR><BR><BR><BR><BR><BR>";
exit;
}

//la subida al servidor
if (isset ($submit)) {
move_uploaded_file ($foto,$newfoto);

echo "la Foto ha sido cargada correctamente.";

}
?>

Te recuerdo que debes darle los permisos correspondientes a la carpeta /fotos y al archivo subir.php

Saludos,
__________________
Saludos a Tod@s... :adios:
  #6 (permalink)  
Antiguo 16/03/2004, 13:56
 
Fecha de Ingreso: marzo-2003
Ubicación: Bogotá
Mensajes: 199
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias por contestar tan rapido pero una cosa mas

Me dices que tengo que dar permisos a la carpeta fotos, pero no se como, ya que el servidor no esta aca en Colombia, es un servidor arrendado, y darle permisos al archivo subir.php ????, como se hace eso, gracias.
  #7 (permalink)  
Antiguo 16/03/2004, 14:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Los permisos a un directorio o archivo los puedes dar con tu cliente FTP opción CHMOD (debes darle 0777 o menos al directorio).

La función copy() en tu caso está dando problemas de permisos en el /tmp de ese servidor .. Para solventar esos problemas usa en lugar de copy() la función move_uploaded_file() que puede copiar el archivo indicado (que ha subido al servidor por HTTP) incluso con el "safe mode" a ON u otras restricciones como open_base_dir() si mal no recuerdo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 16/03/2004, 14:29
 
Fecha de Ingreso: marzo-2003
Ubicación: Bogotá
Mensajes: 199
Antigüedad: 21 años, 1 mes
Puntos: 0
gracias por fin

solo era de verdad darle permisos, me puse a mirar por el paneld e control de mi hosting e incontre una opcion para darle permisos a todo el mundo y ya.

Gracias
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 18:54.