2012-09-01 16 views
5

¿Es posible incluir archivos "arrastrar y soltar" en un envío de formulario? Hay muchas opciones para cargar de forma asincrónica.html5 arrastrar y soltar archivos: cargar cuando se envía el formulario completo

¿Es posible capturar los datos del archivo e incluirlos en un campo de formulario?

estoy usando Rails como mi servidor por lo que idealmente los datos de la imagen se encajar en una forma como sigue:

<form multipart='multipart' > 
    <select name='files[type_id]'> 
    ... 
    ... 
    </select> 
    <!-- FILE DATA ? --> 
    <div id="file_drop_spot"> 

    </div> 

</form> 

Respuesta

0

me encontré con este problema en él: drag drop files into standard html file input

no lo hago cree que es posible, pero podrías lograr el efecto. Cuando envíe el formulario, evite su comportamiento predeterminado y comience a cargar el archivo con ajax. Cuando se completa la carga del archivo, vuelve a señalar el formulario y lo envía, sin impedir su comportamiento predeterminado.

Algo así como:

<form id="form"> 
    <input type="text" name="someText"></input> 
    <input id="submitButton" type="submit" onclick="uploadFile()"></input> 
</form> 

Y entonces el javascript:

function uploadFile() { 

    document.getElementById("submitButton").disabled = true; 
    // Some ajax code to upload the file and then on the success: 
    success: function() { 

     document.getElementById("form").submit(); 

    } 
    return false; // Prevent the form from submitting 

} 
+0

Sería más de un trabajo alrededor porque el registro del archivo debe ser asociado a no se habrá creado todavía –

+0

Hm, ya veo ... Pero ajax realmente es solo una publicación, como si fuera de una forma. Recomiendo leer sobre cómo un formulario realmente envía datos de archivos y luego enviar todo con ajax. Backend no debería necesitar ningún cambio basado en ajax o en un envío de formulario normal. Creo ;-) –

Cuestiones relacionadas