Foros del Web » Programando para Internet » Javascript » Frameworks JS »

subir imagen arrastrando y soltando

Estas en el tema de subir imagen arrastrando y soltando en el foro de Frameworks JS en Foros del Web. hola, se me ocurrio la idea de poder subir fotos arrastrando y soltando con html5 y jquery, al arrastrar la imagen a un div lo ...
  #1 (permalink)  
Antiguo 02/08/2011, 04:10
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
subir imagen arrastrando y soltando

hola, se me ocurrio la idea de poder subir fotos arrastrando y soltando con html5 y jquery, al arrastrar la imagen a un div lo q hago es q cuando suelta convierte la imagen en una ruta url
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     var dropbox = document.getElementById("dropbox")
  3.  
  4.     // init event handlers
  5.     dropbox.addEventListener("dragenter", dragEnter, false);
  6.     dropbox.addEventListener("dragexit", dragExit, false);
  7.     dropbox.addEventListener("dragover", dragOver, false);
  8.     dropbox.addEventListener("drop", drop, false);
  9.  
  10. });
  11.  
  12. function dragEnter(evt) {
  13.     evt.stopPropagation();
  14.     evt.preventDefault();
  15. }
  16.  
  17. function dragExit(evt) {
  18.     evt.stopPropagation();
  19.     evt.preventDefault();
  20. }
  21.  
  22. function dragOver(evt) {
  23.     evt.stopPropagation();
  24.     evt.preventDefault();
  25. }
  26.  
  27. function drop(evt) {
  28.     evt.stopPropagation();
  29.     evt.preventDefault();
  30.  
  31.     var files = evt.dataTransfer.files;
  32.     var count = files.length;
  33.  
  34.     // Only call the handler if 1 or more files was dropped.
  35.     if (count > 0)
  36.         handleFiles(files);
  37. }
  38.  
  39.  
  40. function handleFiles(files) {
  41.     var file = files[0];
  42.  
  43.     document.getElementById("droplabel").innerHTML = "imagen guardada";
  44.  
  45.     var reader = new FileReader();
  46.  
  47.    
  48.     reader.onloadend = handleReaderLoadEnd;
  49.  
  50.     // begin the read operation
  51.     reader.readAsDataURL(file);
  52. }
  53.  
  54.  
  55.  
  56. function handleReaderLoadEnd(evt) {
  57.     var img = document.getElementById("preview");
  58.     img.src = evt.target.result;
  59. }

la imagen la deposita en esta etiketa <img>
Código HTML:
Ver original
  1. <div id="dropbox"><span id="droplabel">Suelta imagen aqui...</span>
  2.    
  3. </div>
  4.  
  5. <br/>
  6. <i>¿es este el logo que quieres subir?</i>
  7. <img id="preview" alt=" no archivo" src="" style="width:20px; height:20px;"/>

mi pregunta es: tengo otros datos q recojo en un formulario y keria enviar tanto los datos como la imagen la cual la tengo convertida como data url

si tngo la imagen asi, me hace falta tb tener un iframe para poder enviar la imagen con los otros datos o podria enviar todos los datos asi juntos?
  #2 (permalink)  
Antiguo 02/08/2011, 12:14
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: subir imagen arrastrando y soltando

Claro, mediante jquery no podrás enviar la imagen, puedes enviar esa url pero no la subirla, para eso tendrias q utilizar otro metodo como bien dices iframe para vitar recargar la pagina, hechale un vistazo a http://pixeline.be/experiments/jqUploader/test.php, que lo que hace es basicamente subir un archivo antes de enviar el formulario.

Saludos.
__________________
http://chicho.ninja yiaaaa
  #3 (permalink)  
Antiguo 03/08/2011, 03:38
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: subir imagen arrastrando y soltando

lo q tu dices es q subira primero el archivo antes de enviar el formulario?

a mi me interesaria poder enviar todo junto, es decir no puedo hacer q el formulario envie los datos al iframe y despues del iframe los envie al php donde hago la llamada a la base de datos?
  #4 (permalink)  
Antiguo 03/08/2011, 03:44
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: subir imagen arrastrando y soltando

probe como tu dices pero asi solo lo puedo hacer mediante la caja de subida, intente hacer q si arrastras y sueltas una foto copie la url en la caja de texto para q asi lo suba pero no funciona, se te ocurre alguna idea xq yo probe asi para poder subir la foto arrastrando y no va
  #5 (permalink)  
Antiguo 03/08/2011, 07:29
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: subir imagen arrastrando y soltando

El plugin que te mencione te permite manipular sus eventos a traves de funciones, es decir, si subes imagenes, luego puedes obtener la url de de las imagenes en tu server, y luego ya es muy simple enviarlas por ajax para que las puedas guardar en la base de datos.

Con respecto a arrastrar y subir no se si se pueda, de hecho todos los cargadores de imagenes que funcionan como tu lo dices los he visto en java, pero nunca he visto uno en html. y por otro lado no experimentado mucho con html5, por lo que no podria decirte si se puede o no.

Saludos.

Saludos.
__________________
http://chicho.ninja yiaaaa
  #6 (permalink)  
Antiguo 04/08/2011, 04:23
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: subir imagen arrastrando y soltando

el codigo javascript q pegue yo en mi primer post funciona y permite arrastar y soltar x si lo kieres probar, el tema q te comentaba es ese q no se de q forma puedo enlazar dicho codigo con el plugin q me dices tu el cual funciona, esq me interesaba q funcionase el tema de arrastar y soltar xq le da un aspecto de manejabilidad muy simple de cara a la interaccion de la pagina con el usuario pero bueno intentare buscar alguna solucion sino tendre q dejar solo la caja input para subir fotos

x cierto tu no sabras de algun script o algo q redimensione las fotos una vez las extraes de la base de datos


gracias
  #7 (permalink)  
Antiguo 04/08/2011, 12:11
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: subir imagen arrastrando y soltando

http://www.webresourcesdepot.com/jqu...-plugin-jcrop/ para recortar imagenes, pero es jquery, pero entiendo que estas trabajando con ExtJS.

Saludos.
__________________
http://chicho.ninja yiaaaa
  #8 (permalink)  
Antiguo 06/08/2011, 11:57
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: subir imagen arrastrando y soltando

utilice el plugin q me recomendaste pero no me aparecen los .js q tengo q incluir en mi web,

x ejemplo me dice q tengo q incluir los archivos
<script type="text/javascript" src="jquery-latest.pack.js"></script>
<script type="text/javascript" src="dependencies/swfobject.js"></script>
<script type="text/javascript" src="jquery.jqUploader.js"></script>


y al descargar los archivos no me aparecia ninguno en la carpeta excepto el jquploader,

son necesarios los otros dos para q funcione el plugin? o como puedo hacer
  #9 (permalink)  
Antiguo 08/08/2011, 07:48
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: subir imagen arrastrando y soltando

Viringas:

El primero se refiere a jquery, descargalo de jquery.com y el swfobject puedes descargarlo de code.google.com/p/swfobject/ pero te recomiendo ver el codigo fuente del ejemplo y descargarlos desde hay, te aseguraras de la compatibilidad.

Saludos.
__________________
http://chicho.ninja yiaaaa
  #10 (permalink)  
Antiguo 08/08/2011, 12:05
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: subir imagen arrastrando y soltando

ya me funciona, era un problema de especificacion de rutas pero me podrias indicar como podria hacer para subir aparte de las fotos mas datos, es decir aparte de una foto keria subir tb pues un nombre y una direccion seria algo tal q asi:
(es q probe y no me funciona)
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.   $('#file_upload').uploadify({
  3.     'scriptData' : {'colab': $("#colab").val()},  
  4.      'scriptData2' : {'urlcolab': $("#urlcolab").val()}
  5.      'uploader'  : 'j-query/uploadify/uploadify.swf',
  6.     'script'    : 'j-query/uploadify/uploadify.php',
  7.     'cancelImg' : 'j-query/uploadify/cancel.png',
  8.     'folder'    : 'j-query/uploadify/logosColab',
  9.     'auto'      : true
  10.   });
  11. });
Código HTML:
Ver original
  1. <p class="texto2"> nombre colaborador:</p>
  2. <input type="text" name="colab" id="colab" size="30" />
  3. <p class="texto2"> url colaborador:</p>
  4. <input type="text" name="urlcolab" id="urlcolab" size="30" /><br><br>
  5. <input id="file_upload" name="file_upload" type="file" />

el problema es q no me envia al php los demas datos, en el php tengo puesto:
Código PHP:
Ver original
  1. $colab= $FILES['colab'];
  2. $url = $FILES['urlcolab'];

despues otra cosa q te keria comentar, mi idea es guardar la imagen en una carpeta, y la direccion de esa imagen guardarla en una BD junto con los otros dos datos, el problema es q no se como puedo hacer para guardar la direccion de dicha foto en la BD modifike el php asi:
Código PHP:
Ver original
  1. <?php
  2. include("conectarse.php");
  3. $link = conectarse();
  4.  
  5.  
  6.  
  7. $nombre = $_POST['colab'];
  8. $url = $_POST['urlcolab'];
  9.  
  10.  
  11. if (!empty($_FILES)) {
  12.     $tempFile = $_FILES['Filedata']['tmp_name'];
  13.     $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
  14.     $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
  15.    
  16.            
  17.         if(move_uploaded_file($tempFile,$targetFile)){
  18.                        
  19.                        aki es donde no se como poder guardar la ruta de la foto
  20.  
  21.             $sql = "INSERT INTO colaboraciones (nombre,url)";
  22.             $sql=$sql.'VALUES ("'.$nombre.'","'.$url.'")';
  23.             mysql_query($sql,$link);
  24.            
  25.             echo("datos enviados correctamente");
  26.         }
  27.         else{
  28.             echo("error al guardar los datos en la BD");
  29.         }
  30.            
  31.         echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
  32.    
  33. }
  34. ?>

gracias x las posibles contestaciones q me puedas dar
  #11 (permalink)  
Antiguo 25/08/2011, 05:53
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: subir imagen arrastrando y soltando

viringas en la misma pagina del auror salen ejemplos con mas campos en el formulario.

Saludos.
__________________
http://chicho.ninja yiaaaa

Etiquetas: html, jquery, formulario
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 19:21.