Ir al contenido


Foto

[RESUELTO] insertar y mostrar imagen subida con ajax


  • Por favor identifícate para responder
1 respuesta en este tema

#1 squall2501

squall2501

    Advanced Member

  • Miembros
  • PipPipPip
  • 82 mensajes
  • Locationen oa

Escrito 22 agosto 2011 - 11:01

Estimados

Tengo el siguiente problema estoy realizando una aplicación donde la persona debe subir una foto.Esta debe subirse al servidor y a la carpeta correspondiente después de cargarla en el input file y mostrar la foto en un cuadro

Todo ocurre sin problemas copia el archivo a la carpeta,lo sube a la base de datos,pero al cargarlo la imagen en el div no me muestra nada

He realizado la mayoría



php
  1. //Despues que cambie el estado del input con load se resive la informacion
  2. //cargandola en el divfoto_b_1
  3.  
  4. <script type="text/javascript">
  5.     $(document).ready(function(){
  6.        
  7.        
  8.         $("#fileUpload").change(function(){
  9.  
  10.         $("#foto_b_1").load("../002001/002001007.php");
  11.   });
  12.     });
  13.  
  14. </script>
  15.  
  16.  
  17. //El formulario donde se inserta la foto con una funcion onchange para
  18. //que cuando cambie de estado lo envie con submit
  19.  
  20. <form method="post" enctype="multipart/form-data"
  21.     action="../002001/002001007.php" target="iframeUpload">
  22.     <input class="adj_foto" name="fileUpload" id="fileUpload" type="file" onchange="javascript: submit()" />
  23.     [br /]<iframe name="iframeUpload" style="display:none"></iframe>
  24.     </form>
  25.  
  26.  
  27. //El div donde se cargara la foto
  28. <div class="foto_b_1" id="foto_b_1"></div>
  29.    
  30.    
  31.   </div>
  32.  
  33. //finalmente el php donde es enviada la informacion de file
  34.  
  35. <?php
  36. require_once('../001001/001001002.php');
  37. $tra=new Trabajo();
  38. $foto=$tra->get_fotos();
  39.  
  40.  
  41. $tipo = substr($_FILES['fileUpload']['type'], 0, 5);
  42. $nombre=$_FILES['fileUpload']['name'];
  43. $tam = $_FILES['fileUpload']['size'];
  44.  
  45.  
  46. $dir = '../003001/fotos/';
  47.  
  48.  
  49. if (!copy($_FILES['fileUpload']['tmp_name'], $dir.$_FILES['fileUpload']['name']))
  50. echo '<script> alert("Error al Subir el Archivo");</script>';
  51. else
  52. echo '<script> alert("El archivo '.$_FILES['fileUpload']['name'].' se ha copiado con Exito");</script>';
  53. $tra->up_foto($nombre,$tam);
  54.  
  55.  
  56. //Aqui tengo el problema lo raro que al usar un alert para ver
  57. //el contenido d ela variable me muestra el nombre de la foto sin problemas
  58.  
  59. echo  '<img src="../003001/fotos/'.$nombre.'" />';
  60.  
  61. ?>


Gracias de antemano
  • 0

#2 squall2501

squall2501

    Advanced Member

  • Miembros
  • PipPipPip
  • 82 mensajes
  • Locationen oa

Escrito 22 agosto 2011 - 09:05

Ok me contesto solo jejeje


A través de un plugin de jquery se puede fácilmente mostrar la imagen que subimos al servidor usando con ajax  sin tener que enviar el file con un boton submit simplemente al añadir el archivo se hara todo el proceso y por otra parte podemos con unas cuentas lineas php subirla al servidor y a su carpeta correspondiente( obviamente con lso permisos de lectura y escritura) y usando un flash para mostrar el proceso de subida

Necesitamos

- jquery.uploadify.v2.1.0.min.js
- jquery-1.4.3.min
- Y el swf para mostrar la carga



php
  1. //el input para subir la imagen o archivo
  2.   <input id="upload_button1" type="file" name="upload_button1"/>






php
  1. <script type="text/javascript">
  2.  
  3. //la funcion javascript
  4.  
  5. $(document).ready(function() {
  6. $('#upload_button1').uploadify({ //el id del div
  7. 'uploader'  : 'js/uploadify.swf',//el archivo swf
  8. 'script'    : '../002001/002001007.php',//la pagina php que procesara la informacion
  9. 'cancelImg' : 'cancel.png',
  10. 'auto'      : true,
  11. 'folder'    : '../003001/fotos/', //la carpeta de las imagenes
  12. 'scriptData' : {'texto': $("#mitexto").val()}, //el texto que se mostrara mientras se sube
  13. 'onComplete': function(event, queueID, fileObj, response, data) {  //la respuesta despues que se ejecute
  14.     $('#foto_b_1').append(response); //en mi caso al div foto_b_1 agregare la info devuelta
  15. }
  16. });
  17.  
  18. </script>





php
  1. //el div donde se insetara la foto despues de la respuesta
  2.     <div class="foto_b_1" id="foto_b_1"></div>






php
  1. //la pagina php que procesara el archivo
  2. //lo subira a la carpeta y al servidor
  3.  
  4.  
  5. <?php
  6.  
  7.  
  8. abstract class Con{
  9.  
  10. public static function conectar()
  11. {
  12.  
  13. $co=mysql_connect("localhost","root","password");
  14. mysql_select_db("tubd");
  15. return $co;
  16. }
  17.  
  18.  
  19. }
  20.  
  21. class Trabajo{
  22.  
  23. public function up_foto($nombre,$tam){
  24.            
  25.         //aqui tambien recogo el tamaaño del archivo por que me lo exigen noe s necesario
  26.  
  27.         $sql= "INSERT INTO arcphoto  VALUES(null,1,1,now(),'".$nombre."',1,1,'".$tam."')";
  28.         mysql_query($sql,Con::conectar());
  29.  
  30. }
  31.  
  32.  
  33. }
  34.  
  35.  
  36. /*
  37.  
  38. Obviamente todo lo anterior puede ir en otro archivo y llamarlo con un require_once
  39. */
  40.  
  41. $tra=new Trabajo();
  42.  
  43.  
  44.  
  45. if (!empty($_FILES)) {
  46. $tempFile = $_FILES['Filedata']['tmp_name'];
  47. $file_name = $_FILES['Filedata']['name'];
  48.         $tam = $_FILES['Filedata']['size'];
  49. $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
  50. $targetFile =  str_replace('//','/',$targetPath) . $file_name;
  51. if (move_uploaded_file($tempFile,$targetFile)){
  52.            
  53.                 $tra->up_foto($file_name,$tam);
  54. echo "<img src='../003001/fotos/".$file_name."'/>";
  55. } else {
  56. echo 'Tu archivo falló';
  57. }
  58. }
  59. ?>



Pagina con el ejemplo y el codigo  de descarga

http://www.miguelman...os-usando-ajax/
  • 0




IP.Board spam blocked by CleanTalk.