2012-09-01 13 views
5

Czy w formularzu można uwzględnić pliki "przeciągnij i upuść"? Istnieje wiele opcji przesyłania asynchronicznie.Pliki przeciągnij i upuść HTML5 - prześlij po przesłaniu całego formularza

Czy można przechwycić dane pliku i uwzględnić je w formularzu?

Używam Rails jak mój serwer tak idealnie dane dotyczące obrazu będzie pasował do postaci, jak następuje:

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

    </div> 

</form> 

Odpowiedz

0

znalazłem ten problem na nim: drag drop files into standard html file input

nie mam uwierz, że to możliwe, ale możesz osiągnąć efekt. Po przesłaniu formularza należy zapobiec jego domyślnemu zachowaniu i rozpocząć przesyłanie pliku za pomocą ajax. Po zakończeniu przesyłania pliku ponownie wskaż formularz i prześlij go, nie wyłączając jego domyślnego zachowania.

Coś jak:

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

a następnie 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

Byłoby więcej pracy wokół ponieważ rekord plik musi być związana z nie zostały jeszcze utworzone –

+0

Hm, rozumiem ... Ale ajax naprawdę jest tylko postem, tak jakby pochodziło z formy. Poleciłabym przeczytać, w jaki sposób formularz faktycznie wysyła dane pliku, a następnie przesłać całość za pomocą ajax. Backend nie powinien wymagać żadnych zmian w oparciu o ajax lub zwykłe przesłanie formularza. Wierzę ;-) –

Powiązane problemy