Foros del Web » Programando para Internet » PHP »

como subir una imagen en php

Estas en el tema de como subir una imagen en php en el foro de PHP en Foros del Web. ola amigos programadores les escribo x q necesito saber cual es el codigo para permitir a los usuario del sitio subir imagenes.... aunque ay un ...
  #1 (permalink)  
Antiguo 04/05/2009, 11:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 14 años, 11 meses
Puntos: 0
De acuerdo como subir una imagen en php

ola amigos programadores
les escribo x q necesito saber cual es el codigo para permitir a los usuario del sitio subir imagenes.... aunque ay un elemento extra

en el sitio se estaran subiendo imagenes constantemente y ps obviamente se sabe q la base de datos no aguantaria tanta cantidad de informacion....

asi, q pense programar el sitio para q suba las imagenes y las almacene en una carpeta especifica y la BD guardaria la direccion en donde estaria almacenda la imagen para no reventar la BD

les agradesco q primero me ayuden con el codigo para poder subir imagenes... y ps les agradesco de nuevo su ayuda
  #2 (permalink)  
Antiguo 04/05/2009, 11:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como subir una imagen en php

Tema trasladado desde PHP Orientado a Objetos.

Revisa las FAQs del foro es un tema ya tratado.

Saludos.
  #3 (permalink)  
Antiguo 04/05/2009, 11:34
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: como subir una imagen en php

Revisa este post.

Este es el codigo que uso para subir imagenes...
http://www.forosdelweb.com/f18/probl...2/#post2835447

Silla!
  #4 (permalink)  
Antiguo 04/05/2009, 15:39
 
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: como subir una imagen en php

muchachos gracias por ayudarme en este codigo...
podrian ahora decirme como hago para cargar las fotos a una carpeta externa, es decir, q las imagenes no las guarde en la BD sino en una carpeta aparte

con esto en la BD solo se guardaria el archivo de ubicacion y de alli se obtendria la imagen cuando se haga la consulta...

les agradesco su comprension y ayuda...
  #5 (permalink)  
Antiguo 04/05/2009, 15:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como subir una imagen en php

Es el mismo "concepto", solamente que en lugar de insertar a la BDD usa move_uploaded_file.

Saludos.
  #6 (permalink)  
Antiguo 04/05/2009, 16:08
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: como subir una imagen en php

El código que te han pasado no las guarda en una bd. Para poder controlar la ubicacion solo cambia la variable $upload_ficheros y asignale la ubicación que quieras. Lo que si no hace ese codigo es guardar la dirección en una BBDD, pero para eso basta un simple INSERT.
__________________
twitter: @imbuzu
  #7 (permalink)  
Antiguo 05/05/2009, 02:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 1
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: como subir una imagen en php

Que tal, yo aplique para mi pagina web lo que tu quieres, es decir, guardar imagenes en mi servidor y en BDD guardar nada mas la direccion para despues mostrala, te explico el codigo:

Código PHP:
$upload_directorio 'upload/'// directorio donde quieres que se suba la imagen
$upload_file $upload_directorio $_FILES['imagen']['name']; // haces el upload de la imagen
$ruta_imagen$_FILES['imagen']['name']; // guardo la ruta de la imagen para mi BDD

$img move_uploaded_file($_FILES['imagen']['tmp_name'], $upload_file); // lo subo a la carpeta en mi servidor

$query "INSERT INTO `nombre_de_tu_tabla` (`id`, `ruta_imagen`) VALUES ('','".$ruta_imagen."')"// inserto los datos en mi BDD
mysql_query($query) or die ("Error: ".mysql_error());    
mysql_close($connection); 
y asi tendrias tu formulario (ejemplo):

Código HTML:
<form>
 <label>Imagen:</label>
   <input type="file" name="imagen"/>
</form> 
para mostra la imagen(s) tendrias tu codigo php asi:

Código PHP:

$query 
"SELECT * FROM `nombre_de_tu_tabla`"
$result mysql_query($query);
    
    if(
mysql_num_rows($result) != 0){
        while(
$row mysql_fetch_row($result)) {
        echo 
"<img src='upload/".$row[1]."' alt='"$row[1].."' />"//aqui es donde las imprimes, la ruta de la imagen cambiara obviamente de acuerdo a donde este el archivo donde lo muestras
                         
}
            } 
Cualquier duda, estoy a tus ordenes, Saludos

// dpo //
  #8 (permalink)  
Antiguo 05/05/2009, 08:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: como subir una imagen en php

q tal muchachos
bueno de nuevo aca por q ahora el codigo no carga en mi BD y me manda el siguiente error

Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 48 is not allowed to access / owned by uid 0 in /home/webcindario/i/m/imagesanto/index.php on line 56


y este es el codigo q estoy utilizando

$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

if ($fileName == '') // SIN FICHERO
{
$tmpName = "";
$sifileName = "TRUE";
} else {
$fileName = renombrar($fileName); // CON FICHERO
$sifileName = "FALSE";
$fecha_pp1 = date("Y-m-d");
}

//Dirección donde se guardaran los archivos cargados
$upload_ficheros = "/photos";

//Mover direccion temporal de FILE 1 a DIRECCION FINAL en ficheros/pdfs/
if ($sifileName != "TRUE")
{
$n_path_file1 = $upload_ficheros . $fileName;
$resultado1 = move_uploaded_file($tmpName, $n_path_file1);-->esta es la linea en donde aparece el error

if (!$resultado1)
{
echo "ERROR: El archivo no pudo ser cargado al servidor";
exit;
}
}
function renombrar($nombre_foto)
{
$random=mt_rand(1,15000);
$ext = substr(strrchr($nombre_foto,"."),1);
$xext = ".".$ext;
$n = basename($nombre_foto, $xext);

$nombre_foto = $n . "-" . $random . $xext;

return $nombre_foto;
}
?>

les agradesco la ayuda q me presten

Última edición por camilosanto; 05/05/2009 a las 08:53
  #9 (permalink)  
Antiguo 05/05/2009, 08:19
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: como subir una imagen en php

Por lo que se ve no tienes permiso para acceder al directorio. Asegurate que tengas los permisos necesarios y que tu directorio tenga permisos de escritura.
__________________
twitter: @imbuzu
  #10 (permalink)  
Antiguo 05/05/2009, 09:34
 
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: como subir una imagen en php

ey buzu

ya le di todos los atributos a la carpeta y ps la carpeta esta en el mismo sitio... xq ocurre esto??,
y por fa si sabes q otra solucion ay me la haces saber
  #11 (permalink)  
Antiguo 05/05/2009, 15:45
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: como subir una imagen en php

Es que no puedes, tendrías que desactivar el safe mode. No son solo los permisos de las carpetas. Safe Mode desactiva el uso de move_uploaded_file(). Para solucionarlo tienes que obtener tu propio host.
__________________
twitter: @imbuzu
  #12 (permalink)  
Antiguo 06/05/2009, 07:21
 
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: como subir una imagen en php

ok...
entons seria mejor ejecutar las pruebas en un localhost????
  #13 (permalink)  
Antiguo 06/05/2009, 14:04
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: como subir una imagen en php

si, prueva en un localhost y nos cuentas.
__________________
twitter: @imbuzu
  #14 (permalink)  
Antiguo 08/05/2009, 08:41
 
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: como subir una imagen en php

ola de nuevo

he hecho la pruebe en un localhost y al momento de pinchar el boton de subir imagen me manda una ventana de descarga como si fuera a descargar el archivo....

aqui les anexo el codigo

pag index.php

<form action="validar.php" method="post" enctype="multipart/form-data" name="uploadform">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box" bgcolor="#000099">
<tr>
<td width="246"><input type="hidden"name="MAX_FILE_SIZE" value="2000000">
<input name="userfile"type="file" class="box" id="userfile">
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Subir imagen "></td>
</tr>
</table>
</form>


pag validar.php

<?
mysql_connect("********","******","*******l");
mysql_select_db("*****");
//Recibo Ficheros - Presupuesto 1

$n_file1 = $_FILES['file1']['name'];
$n_file1_tmp = $_FILES['file1']['tmp_name'];
$n_file1_size = $_FILES['file1']['size'];
$n_file1_type = $_FILES['file1']['type'];

//DEBUG DE SUBIDA DE FICHERO 1
/* echo $n_file1."<br />";
echo $n_file1_tmp."<br />";
echo $n_file1_size."<br />";
echo $n_file1_type."<br />"; */

//Validacion de existencia de fichero 1
if ($n_file1 == '') // SIN FICHERO
{
$n_file1 = "";
$sin_file1 = "TRUE";
} else {
$n_file1 = renombrar($n_file1); // CON FICHERO
$sin_file1 = "FALSE";
$fecha_pp1 = date("Y-m-d");
}

//Dirección donde se guardaran los archivos cargados
$upload_ficheros = "image2/pictures/";

//Mover direccion temporal de FILE 1 a DIRECCION FINAL en ficheros/pdfs/
if ($sin_file1 != "TRUE")
{
$n_path_file1 = $upload_ficheros . $n_file1;
$resultado1 = move_uploaded_file($n_file1_tmp, $n_path_file1);
echo "La imagen se a cargado correctamente";
if (!$resultado1)
{
echo "ERROR: El archivo no pudo ser cargado al servidor";
exit;
}
}
?>
<?
function renombrar($nombre_foto)
{
$random=mt_rand(1,15000);
$ext = substr(strrchr($nombre_foto,"."),1);
$xext = ".".$ext;
$n = basename($nombre_foto, $xext);

$nombre_foto = $n . "-" . $random . $xext;

return $nombre_foto;
}
?>

les agradesco la ayuda q me puedan prstar en esto
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 22:46.