Foros del Web » Programando para Internet » PHP »

subir fotos

Estas en el tema de subir fotos en el foro de PHP en Foros del Web. ¿como se podria hacer un script para que el administrador de un panel admin pueda subir una foto a un directorio sin necesidad de usar ...
  #1 (permalink)  
Antiguo 16/07/2004, 05:58
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
subir fotos

¿como se podria hacer un script para que el administrador de un panel admin pueda subir una foto a un directorio sin necesidad de usar por ejemplo cutenews?

y si ubiese diferentes categorias donde en cada directorio se introdujese fotos diferentes en base a esa categoria?



gracias.
  #2 (permalink)  
Antiguo 16/07/2004, 06:01
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
insertar codigo

tengo un panel de noticias para maneralo un administrador, pero el tema de las imagenes o foto, no lo tengo hecho del todo como yo quiero. ahora mismo se teclea el nombre del archivo .jpg en un campo y yasta.


habia pensado que el administrador pinchara un link, y apareciese todas las fotos correspondientes a esa categoria, ahora que al pinchar sobre una de ellas, automaticamente tomase el nombre del archivo y ruta, ¿como de haria?

gracias.
  #3 (permalink)  
Antiguo 16/07/2004, 06:22
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Tendrías que usar lo siguiente para subir fotografías:

Para empezar debes ponerle esta propiedad a tu form enctype="multipart/form-data"

Luego con esto harás un campo Examinar donde verás los archivos de tu ordenador y agregarás el archivo que desees <input name="Archivo" type="file">

Luego donde dirijas tu form tienes q poner esto otro

if ($Archivo_name != "")
{
$extension = explode(".",$Archivo_name);
$num = count($extension)-1;
if($extension[$num] == "jpg")
{
if ($Archivo_size < 50000)
{
if(!copy($Archivo, $Archivo_name.".jpg"))
{
echo "Error al copiar el archivo nº 1<br>";
}
else
{
echo "Archivo nº 1 cargado con éxito<br>";
}
}
else
{
echo "Archivo nº 1 supera los 50kb<br>";
}
}
else
{
echo "El formato del archivo nº 1 no es valido, solo .jpg<br>";
}
}

Igualmente si buscas por los post encontrarás infinidad de hilos que hablan sobre este tema... Solo hay que buscar un poco

Bueno, espero que sea esto lo que buscabas.

Hasta otra
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #4 (permalink)  
Antiguo 16/07/2004, 06:27
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
La primera pregunta ya te la he respondido en el otro post que has escrito y la segunda fijate en el otro post donde pone Archivo_name allí pues antes pones el directorio que quieres que sea por ejemplo:
if (!copy($Archivo, "../Fotos/".$Archivo_name.".jpg"))

Venga hasta luego!
Espero que te sirva
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #5 (permalink)  
Antiguo 16/07/2004, 06:56
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
gracias por la ayuda.


si tuviese diferentes secciones, lo ideal seria crear una carpeta de imagenes para cada una de ellas???


y si es asi tendre que crear un archivo php para cada seccion que guarde en su carpeta correspondiente?? o existe la posibilidad de elegir el directorio para subir esa imagen??
  #6 (permalink)  
Antiguo 16/07/2004, 08:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
si tuviese diferentes secciones, lo ideal seria crear una carpeta de imagenes para cada una de ellas???
Eso va a depender de como organizes tus archivos y como los vas a pretender leer por sus categorías. Si te vas a basar en la estructura de directorios físca donde van a caer tus archivos y que tu definiaras en nombre del directorio como nombre de tu "categoria" ..podrías hacer eso. Pero, también podrías organizarlo desde una BD (útil sobre todo cuando pretendas empezar a necesitar de estadísticas de accesos y demás).

Cita:
y si es asi tendre que crear un archivo php para cada seccion que guarde en su carpeta correspondiente?? o existe la posibilidad de elegir el directorio para subir esa imagen??
Hombre .. para eso tienes las "variables" ..

Si tu te haces un formulario que pida el archivo y se seleccione el directorio (= nombre sección) donde vas a colocar tu archivo .. no necesitas mas que -un sólo- scritp PHP que lo procese.

Sobre el tema de subir el archivo te recomiendo que leas la documentación oficial de PHP al respecto y uses los arrays superglobales $_FILES además de NO usar copy() para mover el archivo desde donde PHP lo deja "temporalmente" hacia su destino definitivo .. sino que uses move_uploaded_file().

Un saludo,
  #7 (permalink)  
Antiguo 04/08/2004, 05:51
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Si pongo $_POST["$Archivo_name"] veo que no funciona. Podrían decirme a que se debe esto? ¿Es por ser "multipart/form-data"?

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #8 (permalink)  
Antiguo 04/08/2004, 09:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
ferent ..

Los archivos "binario" (de un campo file de tu formulario) no suben por el array $_POST sino en $_FILES['nombre_campo_archivo']['propiedades'] .. donde "propuiedades" es: name ó tmp_name o type o size ...

Tienes la documentación oficial sobre el tema "Upload" en php.net para que lo leas:
http://www.php.net/manual/en/features.file-upload.php


Un saludo,
  #9 (permalink)  
Antiguo 04/08/2004, 09:17
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
en la pagina que tengas de conexion a la bd pone esta function

function ResizeImageboliche($im,$maxwidth,$maxheight,$name) {
$width = imagesx($im);
$height = imagesy($im);
if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){
if($maxwidth && $width > $maxwidth){
$widthratio = $maxwidth/$width;
$RESIZEWIDTH=true;
}
if($maxheight && $height > $maxheight){
$heightratio = $maxheight/$height;
$RESIZEHEIGHT=true;
}
if($RESIZEWIDTH && $RESIZEHEIGHT){
if($widthratio < $heightratio){
$ratio = $widthratio;
}else{
$ratio = $heightratio;
}
}elseif($RESIZEWIDTH){
$ratio = $widthratio;
}elseif($RESIZEHEIGHT){
$ratio = $heightratio;
}
$newwidth = $width * $ratio;
$newheight = $height * $ratio;
if(function_exists("imagecopyresampled")){
$newim = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}else{
$newim = imagecreate($newwidth, $newheight);
imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}
ImageJpeg ($newim,"../fotosboliche/$name" . ".jpg");
ImageDestroy ($newim);
}else{
ImageJpeg ($im,"../fotosboliche/$name" . ".jpg");
}
}
__________________
Ignacio
  #10 (permalink)  
Antiguo 04/08/2004, 09:17
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
el script agregar:

<?php
require( "../../VarsMM.php" );
dbConnect();
$tabla = $dbPref."fotosboliche";
$comentario = addslashes ($comentario);
$agregar = "INSERT INTO $tabla VALUES( '','$idcat', 'null', '$comentario')";
$ejecutar = mysql_query ($agregar) or error( mysql_error() );
$lastid = mysql_insert_id();

if ($ejecutar)
{
if ($foto_name != "")
{
$foto_name = $lastid."_neorosario.jpg";
$RESIZEWIDTH=500;
$RESIZEHEIGHT=500;
$FILENAME=$lastid."_neorosario";
if($_FILES['foto']['size'])
{
$im = imagecreatefromjpeg($_FILES['foto']['tmp_name']);
}
if($im)
{
if(file_exists("$FILENAME.jpg"))
{
unlink("$FILENAME.jpg");
}
ResizeImageBoliche($im,$RESIZEWIDTH,$RESIZEHEIGHT, $FILENAME);
ImageDestroy ($im);
}

// crea la de 140 pixeles
$RESIZEWIDTH=140;
$RESIZEHEIGHT=140;
$FILENAME=$lastid."_neorosario_mini";
if($_FILES['foto']['size'])
{
$im = imagecreatefromjpeg($_FILES['foto']['tmp_name']);
}
if($im)
{
if(file_exists("$FILENAME.jpg"))
{
unlink("$FILENAME.jpg");
}
ResizeImageBoliche($im,$RESIZEWIDTH,$RESIZEHEIGHT, $FILENAME);
ImageDestroy ($im);
}
$actualizar = "UPDATE $tabla SET foto='$foto_name' WHERE idfoto ='$lastid' ";
$ejecutar2 = mysql_query ($actualizar) or error( mysql_error() );
}
header ( "Location: fotosboliches.php?mensaje=Foto Agregada" );
} else {
header ( "Location: fotosboliches.php?mensaje=Error al agregar foto" );
}
?>
__________________
Ignacio
  #11 (permalink)  
Antiguo 04/08/2004, 09:18
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 14 años, 9 meses
Puntos: 0
ojo, que me parece que tienen nombres distintos y rutas distintas (pero es que me confundi yo, adaptalo a lo tuyo)
__________________
Ignacio
  #12 (permalink)  
Antiguo 04/08/2004, 09:44
Avatar de oktubre  
Fecha de Ingreso: agosto-2003
Ubicación: en mi casa
Mensajes: 371
Antigüedad: 14 años, 3 meses
Puntos: 4
che, yo opino tontamente pero creo que lo que necesita el tipo este es que alguien le recuerde ese viejo tutorial de cluster de como almacenar archivos en mysql.
si mas o menos maneja mysql podria agregar los campos que necesite para guardar texto a la tabla de imagenes.
yo lo he hecho y anda re bien

recuerdan cual era? ese que tenia varios archivos y el que mostraba era ver.php

saludos
__________________
[email protected] <----------------<<<<
prefiero cerrar la boca y parecer un tonto que abrirla y confirmarlo.
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 10:59.