Я хочу сохранить файл и примечания в backend, используя ajax в django. Для файла у меня проблемы. Как отправить файл на сервер. Заметки, которые я просматриваю, но я не могу отправить файл для просмотра.
<form class="horizontal-form" role="form" action="." method="post" enctype="multipart/form-data" id="nofilesforms">
<input type="file" name="image_file" id="image_file_data">
<textarea class="form-control notesdata" data-stylesheet-url="" name="notes"></textarea>
<button class="btn btn-primary" id="filesandnotes" type="button">Submit</button>
</form>
$(document).on('click','#filesandnotes',function(){
var notes = $('.notesdata').val();
var path = $('input[type=file][name=image_file]').val();
alert(path);
var data = {
notes:notes,
path:path
};
$.ajax({
url:"/cbs/msw1/",
type: "POST",
data: data,
success: function (response) {
},
error: function () {
}
});
});
Пожалуйста, любой может вести меня за это. большое спасибо
Сначала вам нужно привязать к submit
самой формы, а не событию click
, предотвратить отправку по умолчанию, получить данные файла (имя файла, размер файла, blob и т.д.), Вот ссылка на File
API, также вход файла может удерживайте несколько файлов, поэтому вам нужно зациклиться на массиве Files
. После этого вы отправляете запрос AJAX на ваш сервер Django. И проверьте его и сделайте все, что захотите. Вы также можете использовать JS для проверки вашей формы, но всегда проверяйте бэкэнд!
Вы должны попробовать:
$('#nofilesforms').submit(function(event) { ... });
Кроме того, вы можете использовать плагин загрузки файла jQuery: https://github.com/blueimp/jQuery-File-Upload/wiki/Submit-files-asynchronously