Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/02/2010, 18:08
Garrisonx
 
Fecha de Ingreso: febrero-2010
Mensajes: 17
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: como subir foto al servidor con un solo formulario?

yo tuve el mismo problema hace algun tiempo y te voy a explicar como lo resolvi aunque talvez no es la mejro manera pero a mi me funciono

tengo un formulario con todas las opciones para subir
Código HTML:
<form action="subir.php"  method="POST" enctype="multipart/form-data" name="Alta" id="Alta"><!-- muy importante que tengas el enctype-->

<select name="opcion1">
<option value="valor1"> valor</option>
<option value="valor2"> valor2</option>
<select>
<input name="precio" type="text" id="precio" />
<input name="uploadedfile" type="file" /><!-- este es el de la imagen -->
<input name="EnviarAlta" type="submit" id="EnviarAlta" value="Enviar" />
</form> 
como veras este formulario le manda la informacion a un archivo subir.php
codigo que te doy enseguida

Código PHP:
<?php require_once('TU CONEXION; ?>
<?php
$insertSQL = sprintf("INSERT INTO tabla (valor1, valor2, valor3, valor 4, valor5) VALUES ('
%s', '%s', '%s', '%s', '%s')",
               $_POST['
valor1'],
               $_POST['
valor2'],
               $_POST['
valor3'],
               $_POST['
valor4'],
               $_POST['
valor5']); <!-- aqui inserto los valores a la base d datos--)
                       

mysql_select_db($database_arellano, $arellano);
$Result1 = mysql_query($insertSQL, $arellano) or die(mysql_error());
 
                      
                                               <!-- apartir de aqui subo las imagenes-->
$id = mysql_insert_id();         <!-- este de aqui lo uso para renombrar las imagenes al mismo id_ de mi registro en la db-->
$target_path = "fotos/";<!-- aqui la subo-->


$target_path = $target_path . basename($id.'
.jpg'); 

if(move_uploaded_file($_FILES['
uploadedfile']['tmp_name'], $target_path)) {
    echo   basename( $_FILES['
uploadedfile']['name]). 
    
" La propiedad ah sido de alta correctamente <br /><img src=\"fotos/" $id ".jpg\">";
} else{
    echo 
"There was an error uploading the file, please try again!";
}

$source="fotos/".$id.".jpg"// archivo de origen
$dest="fotos/".$id."_t.jpg"// archivo de destino  <!-- este te hace un thumb del mismo nombre-->
$width_d=80// ancho de salida<!-- aqui cambias el tamaño del thumb-->
$height_d=80// alto de salida
list($width_s$height_s$type$attr) = getimagesize($source$info2); // obtengo información del archivo
$gd_s imagecreatefromjpeg($source); // crea el recurso gd para el origen
$gd_d imagecreatetruecolor($width_d$height_d); // crea el recurso gd para la salida
// desactivo el procesamiento automatico de alpha
imagealphablending($gd_dfalse);
// hago que el alpha original se grabe en el archivo destino
imagesavealpha($gd_dtrue);
imagecopyresampled($gd_d$gd_s0000$width_d$height_d$width_s$height_s); // redimensiona
imagepng($gd_d$dest); // graba
// Se liberan recursos
imagedestroy($gd_s);
imagedestroy($gd_d);


?>
<br ><br />
<a href="alta.php">Regresar</a>
en si yo no subo la imagen ala base de datos simplemente la subo a una carpeta y le pongo el mismo nombre que el id de mi base de datos en el registro y para recuperarla lo hago asi

<img src="upload/fotos/<?php echo $row_Recordset1['id_mobiliario']; ?>_t.jpg" />
mientras tu hagas un while con el record siempre te va a imprimir la imagen con el resto de sus datos por decir para imprimir la ciudad io imprimo esto
<?php echo $row_Recordset1['ciudad']; ?>
si te fijas es lo mismo :P
ojala te sirva