Foros del Web » Programando para Internet » PHP »

subir foto via php

Estas en el tema de subir foto via php en el foro de PHP en Foros del Web. hola , alguien sabe como hacer una pagina HTML (o flash) y que via php sepuedan subir fotos a un servidor porfa ? lo quenecesito ...
  #1 (permalink)  
Antiguo 12/01/2006, 14:55
Avatar de mau.  
Fecha de Ingreso: octubre-2004
Ubicación: El Salvador, Santa Ana
Mensajes: 1.879
Antigüedad: 13 años, 1 mes
Puntos: 5
Exclamación subir foto via php

hola , alguien sabe como hacer una pagina HTML (o flash) y que via php sepuedan subir fotos a un servidor porfa ?

lo quenecesito simplemnte es subir una foto a un server diariamente pls.

saludos y desde ya gracias.
__________________
Este es mi nuevo portafolio www.elsalvadorguia.com
  #2 (permalink)  
Antiguo 12/01/2006, 15:01
 
Fecha de Ingreso: marzo-2005
Ubicación: stgo
Mensajes: 37
Antigüedad: 12 años, 9 meses
Puntos: 0
¿como un fotolog?
  #3 (permalink)  
Antiguo 12/01/2006, 16:49
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... no entiendo, pero en las FAQ se menciona el cómo subir archivos, además de ser tema tratado.

Si tu planteamiento es diferente, ampliate en tu explicación; tal como lo planteas es un simple upload (con una valación).

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 12/01/2006, 17:14
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 4
Estuve trasteando un codigo que te permite subir imagenes y te va mostrando un thumbnail de cada imagen a medida que las subes con la opcion de eliminarla si lo deseas. A lo mejor se podria haber hecho de otra forma mas simple, no se, pero funciona:

Código PHP:
<?
$directorio 
=".";
if (
$borrar) {
unlink ($borrar);
}
if (
$enviado) {
if (
$imagen) {
$imag $HTTP_POST_FILES['imagen']['name'];
if (!
file_exists($imag)) {
move_uploaded_file($HTTP_POST_FILES['imagen']['tmp_name'], $directorio."/".$imag);
}
}


echo 
"<form name=form1 enctype=\"multipart/form-data\" method=post>";
echo 
"<input name=imagen type=file onChange=\"javascript:form1.submit()\"><br>";
echo 
"<input type=hidden name=enviado value=true>";
echo 
"</form>";
    echo 
"<table cellspacing=2><tr>";
        if (
$A opendir($directorio)) { 
    while ((
$B readdir($A))!=FALSE) { 
        if (
$B != "." && $B != "..") {
        
$extension explode(".",$B); 
        
$num count($extension)-1
        if((
$extension[$num] == "jpg") OR ($extension[$num] == "gif") OR ($extension[$num] == "png"))  {
        
        
$original getimagesize($B);
        
$ancho $original[0]; 
        
$alto $original[1]; 
        
     if ((
$alto 150) OR ($ancho 150)) {
     
$with $ancho;
     
$eig $alto;
     } else {
     if (
$ancho $alto) {
     
$with = ((150 $ancho)/$alto);
     
$with round ($with);
     
$eig 150;
     } else {
     
$eig = ((150 $alto)/$ancho);
     
$eig round ($eig);
     
$with 150;
     }
     }

                        echo 
"<td align=center><img src='$directorio/$B' width='$with' height='$eig'><br><a href='$PHP_SELF?borrar=$B'>eliminar</a></td>"
                        
$tabla++;
                        if (
$tabla == 5) { echo "</tr><tr>"$tabla 0; }
            }
        }            
    } 
    
closedir($A); 
    echo 
"</tr></table>";


?>
Hasta luego

Última edición por Cubatron; 12/01/2006 a las 18:06
  #5 (permalink)  
Antiguo 12/01/2006, 17:24
Avatar de mau.  
Fecha de Ingreso: octubre-2004
Ubicación: El Salvador, Santa Ana
Mensajes: 1.879
Antigüedad: 13 años, 1 mes
Puntos: 5
Exclamación

ok gracias por contestar, una pregunta mas especifica es la siguiente....
digamos que he hecho una pagina web, la cual tenga dos botones
muy sencillo el diseño.... y que un boton me permita buscar en mi disco duro la foto a subir y elotropara enviarla.
algo asi como esto .... ( esta es una foto que yo hice en photoshop)



apues loquenecesito hacer es dicha pagina web..

inlcuso, no es necesario visualizar la foto, con solo seleccionarla, y enviarla bastaria.
el problema es que lo he hecho con texto, pero nunca con fotos, y no se donde colocar todo ese php que me da mi amigo cubatron, se que va en un archivo.php pero de alli no se que hacer..
thansk y disculpen lasmolestias.

capichi hermanos ?
__________________
Este es mi nuevo portafolio www.elsalvadorguia.com

Última edición por mau.; 12/01/2006 a las 17:30
  #6 (permalink)  
Antiguo 12/01/2006, 18:22
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 4
Copia el codigo en el bloc de notas y guardalo como subirimagenes.php
Lo subes al servidor y lo pruebas
  #7 (permalink)  
Antiguo 12/01/2006, 20:23
 
Fecha de Ingreso: marzo-2005
Mensajes: 149
Antigüedad: 12 años, 9 meses
Puntos: 0
Pues yo he copiado el código ese que has puesto y solamente me aparece el boton de examinar.

También es cierto que he modificado...

Cita:
$directorio =".";
por

Cita:
$directorio ="uploads";
...y he creado una carpeta en el servidor que se llama uploads con CHMOD 777, he subido un archivo .jpg y no ha sucedido nada.

Alguna solución??

Gracias. Un saludo.
  #8 (permalink)  
Antiguo 13/01/2006, 01:27
Avatar de mau.  
Fecha de Ingreso: octubre-2004
Ubicación: El Salvador, Santa Ana
Mensajes: 1.879
Antigüedad: 13 años, 1 mes
Puntos: 5
Exclamación

hola gracias por contestar,bueno a mi igual no me funciono, y el servidor esta en indows y no en linux, incluso pedi soporte y mepermite reescribir en textos.txo osea que no creo que sea cosa de permisos de escrituro 777 eso espero. ya que mis texto cambian, pero igual, no mepermite subir imagenes aun haciendo loque me pides y todo.
help pls. saludos
__________________
Este es mi nuevo portafolio www.elsalvadorguia.com
  #9 (permalink)  
Antiguo 13/01/2006, 02:50
Avatar de sck1983  
Fecha de Ingreso: noviembre-2005
Ubicación: Sevilla
Mensajes: 110
Antigüedad: 12 años
Puntos: 2
Buenas es posible restringir el ancho y el alto de la imagen, que se va a subir????

Osea, que solo se puedan subir imagenes de 100*100 por ejemplo..

salu2 y gracias
  #10 (permalink)  
Antiguo 13/01/2006, 03:32
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
mau:
A PHP solo le corresponde recibir el archivo, validar de ser neceario, y colocarlo en la ubicación final... La imágen que compartes solo da la idea de lo que quieres (un upload vía HTTP común), pero no corresponde a PHP "llegar a eso".

Lo de los botónes no lo podrás hacer con simple HTML, el motivo es que, para el envio de archivos necesitas de un filebox (<input type="file" ...) y este contiene el botón "Exáminar..." y la caja al lado, no hay manera de quitar eso.

He visto un par de trucos, uno con JS que solo servia para IExplorer antes de la versión 6, el segundo con CSS, se trataba de "transparentar" el filebox y sobreponer una imágen... todo esto para lograr que se viera solo el botón "Buscar". Para previsualizar el archivo (aunque dices no es necesario), en las FAQ de JavaScript hay algo, pero igual es válido solo para IExplorer, colaboradores de aquel foro estaban buscando la manera de hacerlo valer en otros navegadores, no sé a qué llegaron. Quizá y se pueda hacer con un applet JAVA (no JavaScript) , si se puede hacer con Flash no lo sé. Todo esto corresponde "al cliente", recordemos que PHP es un lenguaje del lado del servidor.

El cómo PHP recibe ficheros, los valida y posiciona, repito, esta en las FAQ (la #12) y es tema muy tratado. Apenas unos post atrás se acaba de mencionar un upload solo de imágenes.


Cubatron:
En tu script combinas métodos de recepción de variables, este puede ser el motivo del por qué no le funciona a los compañeros. Lo que usas es obsoleto, debes usar variables superglobales; esto se explica en otra FAQ: http://www.forosdelweb.com/showthrea...989#post238989

Además procura hacer la alidación con la función empty(). Ejemplo de cómo debe quedar:
Código PHP:
 if (!empty($_POST['enviado'])) { 
Otra cosa es que el tipo de validación que haces (por extensión) no es fiable (segura). Lo que tú tomas por extención es fácilmente violable (archivo.exe.jpg), lo idóneo es validar por el MIME TYPE del archivo, esto lo obtienes con $_FILES['archivo']['type']... se explica en la FAQ que mencioné desde un inicio y ahí mismo tienes una lista completa de la relación MIME_TYPE - extesión.


sck1983:
Restringir como tal, no. Volvemos a que PHP es un lenguaje del lado del servidor, por lo tanto para poder trabajar con el archivo este debe estar en el servidor, osea que ya se habrá subido. Sin embargo puedes dejarlo en la carpeta temporal (lee la FAQ #12) ó incluso borrarlo si no cumple con tus requisitos.

Las dimensiones de la imágen las puedes obtener mediante la función getimagesize(), te devuelve un array cuyos dos primeros índices serán el ancho y alto respectivamente:
Código PHP:
$atr getimagesize("archivo.jpg");
$ancho$atr[0];
$alto$atr[1];
// ya ocupas $ancho y $alto para hacer tus validaciones.. obviamente antes deberás comprobar que es una imágen 
Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 13/01/2006, 08:35
Avatar de mau.  
Fecha de Ingreso: octubre-2004
Ubicación: El Salvador, Santa Ana
Mensajes: 1.879
Antigüedad: 13 años, 1 mes
Puntos: 5
Exclamación

pregunta...
la imgaen pesa lo mismo aun cambiando su tamaño cierto?
lo que el array hace es cambiarla de tamaño alpresentarla pero pesa lo mismo cierto ?

saludos
__________________
Este es mi nuevo portafolio www.elsalvadorguia.com
  #12 (permalink)  
Antiguo 13/01/2006, 09:01
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 4
Si, cierto. Lo mejor seria cambiar algunas cosas. A mi me funciona en concreto, pero para adaptarse a mas usuarios tal vez seria mejor modificarlo. De todos modos es una idea, un poco distinta, al tipico EXMAMINAR y ACEPTAR.
Ademas mis conocimientos son basicos. Voy a empollarme las FAQs a ver ;)
Hasta luego.
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 03:21.