Retroceder   Foros del Web > Programación para sitios web > PHP

Respuesta
 
Herramientas Desplegado
Antiguo 23-mar-2008, 14:47   #1 (permalink)
pato12 está en el buen camino
 
Avatar de pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 597
APORTE: Subir imagen con php

Hola,
Ise este otro codigo para subir imagen con php.
El codigo consiste de:
  • form.html <- el formulari de subida
  • post.html <- donde se mostraran los datos
  • sube.php <- lo que validara la imagen y subira
En el codigo esta explicado todo.
Le puse un poco de Javascript.
Empezemos:
sube.php
Código PHP:
<? 
if($_POST){
// Creamos la cadena aletoria
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$cad "";
for(
$i=0;$i<12;$i++) {
$cad .= substr($str,rand(0,62),1);
}
// Fin de la creacion de la cadena aletoria
$tamano $_FILES 'file' ][ 'size' ]; // Leemos el tamaño del fichero
$tamaño_max="50000000000"// Tamaño maximo permitido
if( $tamano $tamaño_max){ // Comprovamos el tamaño 
$destino 'uploaded' // Carpeta donde se guardata
$sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/
$tipo=$sep[1]; // Optenemos el tipo de imagen que es
if($tipo == "gif" || $tipo == "pjpeg" || $tipo == "bmp"){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
move_uploaded_file $_FILES 'file' ][ 'tmp_name' ], $destino '/' .$cad.'.'.$tipo);  // Subimos el archivo
include('post.html'); // Incluimos la plantilla
}
else echo 
"el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo desimos
}
else echo 
"El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo desimos
}
?>
post.html
Código HTML:
La imagen fue enviada con exito.<br><strong>Datos:</strong><br>
<ul>
  <li>Tipo <?=$tipo?></li>
  <li>Ubicasion http://www.midomini.com.ar/<?=$destino . '/' .$cad.'.'.$tipo?></li>
</ul><br>
<strong>Codigo HTML:</strong><br>
<textarea name="html" id="html"><img src="http://www.midomini.com.ar/<?=$destino.'/'.$cad.'.'.$tipo?>"><br>Por www.midomini.com.ar</textarea><br>
<img src="http://www.midomini.com.ar/<?=$destino.'/'.$cad.'.'.$tipo?>">
form.html
Código HTML:
<script>
function ver(image){
document.getElementById('image').innerHTML = "<img src='"+image+"'>" 
}
</script>
<form action="sube.php" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="file" type="file"  onChange="ver(form.file.value)"> 
    <input name="submit" type="submit" value="Upload!">  
</form><br>   <span id="image"></span>
Solo deven cambiar los datos que quiran, por ejemplo el tamaño maximo de la imagen, tipos de imagen aseptada, ect...
Espero que les alla gustado este aporte.
Gracias
Salu2
__________________
Videos Yao - Comparte tus videos con el mundo...
pato12 está desconectado   Responder Citando
Antiguo 23-mar-2008, 15:08   #2 (permalink)
jaronu tiene algunos puntos positivos de karma
 
Avatar de jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 1.636
Re: APORTE: Subir imagen con php

Muy bueno el aporte, Gracias.
jaronu esta en línea ahora   Responder Citando
Antiguo 23-mar-2008, 15:37   #3 (permalink)
pato12 está en el buen camino
 
Avatar de pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 597
Re: APORTE: Subir imagen con php

Gracias jaronu, igual mente pienso del tuyo (Aporte: Aplicacion de centro de descargas. parte 1)
__________________
Videos Yao - Comparte tus videos con el mundo...
pato12 está desconectado   Responder Citando
Antiguo 23-mar-2008, 16:00   #4 (permalink)
pato12 está en el buen camino
 
Avatar de pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 597
Re: APORTE: Subir imagen con php

Hola,
Le puse mas seguridad al codigo y quedo asi:
sube.php
Código PHP:
<? 
session_start
();
if(
$_POST){
if (
$_SESSION['tmptxt'] == $_POST['tmptxt']) {
$key="si";
}
else
{
echo 
"El codigo anti SPAM esta mal.";
}
}
if(
$key == "si"){
// Creamos la cadena aletoria
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$cad "";
for(
$i=0;$i<12;$i++) {
$cad .= substr($str,rand(0,62),1);
}
// Fin de la creacion de la cadena aletoria
$tamano $_FILES 'file' ][ 'size' ]; // Leemos el tamaño del fichero
$tamaño_max="50000000000"// Tamaño maximo permitido
if( $tamano $tamaño_max){ // Comprovamos el tamaño 
$destino 'uploaded' // Carpeta donde se guardata
$sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/
$tipo=$sep[1]; // Optenemos el tipo de imagen que es
if($tipo == "gif" || $tipo == "pjpeg" || $tipo == "bmp"){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
move_uploaded_file $_FILES 'file' ][ 'tmp_name' ], $destino '/' .$cad.'.'.$tipo);  // Subimos el archivo
include('post.html'); // Incluimos la plantilla
}
else echo 
"el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo desimos
}
else echo 
"El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo desimos
}
?>
cap.php
Código PHP:
<?php
session_start
();
function 
randomText($length) {
    
$pattern "123456789abcdefghijklmnopqrstuvwxyz";
    for(
$i=0;$i<$length;$i++) {
      
$key .= $pattern{rand(0,35)};
    }
    return 
$key;
}

$_SESSION['tmptxt'] = randomText(8);
$captcha imagecreatefromgif("bgcaptcha.gif");
$colText imagecolorallocate($captcha000);
imagestring($captcha5167$_SESSION['tmptxt'], $colText);

header("Content-type: image/gif");
imagegif($captcha);
?>
form.html
Código HTML:
<script>
function ver(image){
document.getElementById('image').innerHTML = "<img src='"+image+"'>" 
}
</script>
<form action="sube.php" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="file" type="file"  onChange="ver(form.file.value)"><br>
    Por seguridad escriba lo que ves en la foto de alado( no hay 0 ni o ): <br>
    <input name="tmptxt" type="text" size="30" />
    <img src="cap.php" width="100" height="30" vspace="3" /><br> 
    <input name="submit" type="submit" value="Upload!">  
</form><br>   <span id="image"></span>
y lo unico que falta es la imagen( de 100 x 30).
aqui esta la diresion:
http://www.subeimagenes.com.ar/fotos...2a9f39a204.gif.
La tienes que renombrar a bgcaptcha.gif
y listo.
Gracias
Salu2
__________________
Videos Yao - Comparte tus videos con el mundo...
pato12 está desconectado   Responder Citando
Antiguo 23-mar-2008, 16:23   #5 (permalink)
jaronu tiene algunos puntos positivos de karma
 
Avatar de jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 1.636
Re: APORTE: Subir imagen con php

pato12,

Lo estoy provando ya te dire
jaronu esta en línea ahora   Responder Citando
Antiguo 23-mar-2008, 21:12   #6 (permalink)
pato12 está en el buen camino
 
Avatar de pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 597
Re: APORTE: Subir imagen con php

Ok, espero tu respuesta.
__________________
Videos Yao - Comparte tus videos con el mundo...
pato12 está desconectado   Responder Citando
Antiguo 23-mar-2008, 21:29   #7 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 14.158
Re: APORTE: Subir imagen con php

Pato12,

Deberías de usar el código para generar CAPTCHA que esta publicado en las FAQs.

Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 23-mar-2008, 21:36   #8 (permalink)
jaronu tiene algunos puntos positivos de karma
 
Avatar de jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 1.636
Re: APORTE: Subir imagen con php

Ya lo he estado provando y va muy bien, sobre todo lo de la clave que se genera y se dibuja en la imagen, esta muy bien contra spam.

Y en la parte de subir imagenes tambien le podrias incluir al script un codigo para redimensionar la imagen subida al tamaño que tu quieras.

si te interes te la paso, lo tengo hecho para unja pequña aplicacion que he puesto en mi web donde muestro noticias con una foto relacionada, y redimensiono la imagen mediante codigo para no andar redimensionando con programas de edicion de imagenes, las subo y las redimensiono y a si no pierdo el formato de la pagina.

Un saludo
jaronu esta en línea ahora   Responder Citando
Antiguo 24-mar-2008, 09:34   #9 (permalink)
pato12 está en el buen camino
 
Avatar de pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 597
Re: APORTE: Subir imagen con php

Hola GatorV,
Es que ese codigo es el que yo utiliso en mis web. No avia encontrado uno en los FAQs


Hola jaronu,
Si me in teresa y te agradeseria si me lo pasas.
Gracias
salu2
__________________
Videos Yao - Comparte tus videos con el mundo...
pato12 está desconectado   Responder Citando
Antiguo 24-mar-2008, 09:41   #10 (permalink)
jaronu tiene algunos puntos positivos de karma
 
Avatar de jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 1.636
Re: APORTE: Subir imagen con php

pues aqui va:

Código PHP:
if(isset($_FILES['fichero']['name'])) {  

   if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
   
   
   
//empieza la redimension, tomamos la imagen temporal subida
   
$info getimagesize($_FILES['fichero']['tmp_name']); 
   
//segun el caso sera jpg, gif, png
   
switch ($info[2]) {
  case 
1:
    
$imagen imagecreatefromgif($_FILES['fichero'] ['tmp_name']); break;
  case 
2:
    
$imagen imagecreatefromjpeg($_FILES['fichero'] ['tmp_name']); break;
  case 
3:
    
$imagen imagecreatefrompng($_FILES['fichero'] ['tmp_name']); break;
  
// etcétera // 
  
}

$original $imagen;
$original_w imagesx($original);
$original_h imagesy($original);

$max 175;  //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS

if($original_w>$original_h) {
    
$muestra_w $max;
    
$muestra_h intval(($original_h/$original_w)*$max);
    } else {
    
$muestra_w intval(($original_w/$original_h)*$max);
    
$muestra_h $max;
    }

$muestra imagecreatetruecolor($muestra_w,$muestra_h); 

imagecopyresampled($muestra,$original,0,0,0,0$muestra_w,$muestra_h,$original_w,$original_h);
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya


//imagedestroy($muestra);





   
   
   
    
    
     // me verifica haya sido cargado el archivo 
        
$ruta_destino "../carpeta/archivos/";
        
$namefinaltrim ($_FILES['fichero']['name']);
        
$namefinalereg_replace (" """$namefinal);
        
$uploadfile$ruta_destino $namefinal;
        if(
imagejpeg($muestra,$uploadfile,'100')) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$uploadfile."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
                      


                        
// Aqui es donde tendre que insertar en la BD la variable $namefinal que con tiene el nombre del archivo sin espacios 
jaronu esta en línea ahora   Responder Citando
Antiguo 24-mar-2008, 10:13   #11 (permalink)
pato12 está en el buen camino
 
Avatar de pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 597
Cool Re: APORTE: Subir imagen con php

Gracias jaronu,
Me sirvio de mucho.
Mil Gracias, Gracias
Salu2
__________________
Videos Yao - Comparte tus videos con el mundo...
pato12 está desconectado   Responder Citando
Antiguo 26-mar-2008, 07:34   #12 (permalink)
ClickyMouse ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 71
Re: APORTE: Subir imagen con php

como puedo hacer que el nombre del archivo sea predeterminado por campos en mi Base de Datos?

Ej: Nombre_ID.jpg (Y que al nombre se le remuevan acentos y caracteres especiales??)

Gracias!
ClickyMouse está desconectado   Responder Citando
Antiguo 12-abr-2008, 17:20   #13 (permalink)
pivs ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 11
Re: APORTE: Subir imagen con php

Buen aporte, pero mejora tu ortografía
pivs está desconectado   Responder Citando
Antiguo 15-jun-2008, 01:11   #14 (permalink)
datasitesweb ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Ubicación: Argentina - la plata
Mensajes: 275
Enviar un mensaje por MSN a datasitesweb
Respuesta: APORTE: Subir imagen con php

Como puedo hacer que este mismo sistema, en ves de subirlo a una web lo mande por mail ?

necesito hacer un formulario en el que se pueda enviar una imagen por mail !!!

les agradeceria su ayuda !!!
datasitesweb está desconectado   Responder Citando
Antiguo 15-jun-2008, 04:10   #15 (permalink)
jaronu tiene algunos puntos positivos de karma
 
Avatar de jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 1.636
Respuesta: APORTE: Subir imagen con php

busca en ggoogle info sobre el PHPMailer

Un saludo
jaronu esta en línea ahora   Responder Citando
Antiguo 11-jul-2008, 10:58   #16 (permalink)
Irais20 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Respuesta: APORTE: Subir imagen con php

Por que no me aparece la imagen ayudenme porfavor
Irais20 está desconectado   Responder Citando
Antiguo 14-jul-2008, 08:54   #17 (permalink)
andresgalli ha deshabilitado el karma
 
Avatar de andresgalli
 
Fecha de Ingreso: mayo-2008
Ubicación: Buenos Aires
Mensajes: 13
Enviar un mensaje por MSN a andresgalli Enviar un mensaje por Skype™ a andresgalli
Respuesta: APORTE: Subir imagen con php

Hola, el formulario funciona bárbaro. Pero una consulta, cómo hago para poner otros campos, por ejemplo Nombre, Apellido, Email, Comentarios y que estos datos me lleguen a mi mail???

Me refiero a lo siguiente, el formulario en este momento sólo envia una imagen al hosting/servidor, no?
Bueno, lo que yo quiero es agregar los datos de Nombre, Apellido, Email y Comentarios.

Y que estos datos me lleguen a mi mail de la siguiente manera:

Nombre: Juan
Apellido: Perez
Email: juanperez@email.com
Imagen aportada: pirulo.jpg
Comentarios: Bla bla bla

Que me lleguen ese tipo de datos a mi mail informándome los datos de la persona y la imagen aportada (que no me llegue la imagen, sino el nombre de la imagen con su extensión).

Esto se puede hacer???

Desde ya muchas gracias.

Última edición por andresgalli; 14-jul-2008 a las 08:59.
andresgalli está desconectado   Responder Citando
Antiguo 16-jul-2008, 15:29   #18 (permalink)
Raenk está en el buen camino
 
Avatar de Raenk
 
Fecha de Ingreso: mayo-2003
Ubicación: Mazatlan
Mensajes: 481
Enviar un mensaje por MSN a Raenk
Respuesta: APORTE: Subir imagen con php

Buenisimo !!

Yo he tenido problemas con el tipo de archivos permitidos.
Código:
if($tipo == "gif" || $tipo == "jpeg" || $tipo == "bmp" || $tipo == "png" || $tipo == "tif" || $tipo == "cdr" || $tipo == "pdf" || $tipo == "ai" || $tipo == "eps" || $tipo == "psd"){
Estos he agregad