Найти - Пользователи
Полная версия: Загрузка формы с файлом с помощью jQuery и Django? как
Начало » Django » Загрузка формы с файлом с помощью jQuery и Django? как
1
aliens
Здравствуйте

Имеется такая задача: есть форма, 1 текстовое поле, второе файл. Требуется посредством AJAX с помощью библиотеки jQuery реализовать загрузку формы и файла на сервер, получить JSON ответ ( с ссылкой на файл и описанием, получаемое из текстового поля) и вывести его.

Попробовал jquery.form, но у него недоработка, он не обрабатывает JSON, если в запросе был файл :( (я не один такой, нашел пару веток обсуждения проблемы, но без решений).
А т.к. в JS я вообще стремлюсь к нулю, то прошу помощи, с решением такой задачи, может кто знает альтернативу jquery.form, либо как реализовать отправку формы с файлом?

Моя тестовая вьюха, которая обрабатывает:
@render_to_html
def upload_image(request):
if request.method == 'POST':
form = ImageUploadForm(request.POST, request.FILES)
if form.is_valid():
path1, path2 = save_resize_picture(request.FILES['picture'])
output = simplejson.dumps({'big':path1, 'small':path2, 'description':request.POST['description']})
return HttpResponse(output, mimetype='application/json' )
else:
form = ImageUploadForm()
return 'test_image.html', {'form':form}
а вот js. использующий jquery.form:
<script type="text/javascript">
$(document).ready(function(){
$('#upload_image').ajaxForm({
dataType: 'json',
success: processJson
});
});

function processJson(data) {
$('#mainn').html('');
$('#mainn').append(data);

};
</script>
Смотрел в FireBug, в ответе сервера приходит точно JSON.
Ferroman
Так не получится.
Use google, Luke!
aliens
а какое-нить подобное решение существует?
Ferroman
А по моей ссылке перейти религия не позволяет?
aliens
Ferroman
Прошел, зря думаете, что не гуглил ;) в первые же ссылки человек с такой же проблемой как у меня, а ссылка на хабр-не совсем то.
Ferroman
Ссылка на хабр - как раз то.
aliens
Ferroman
Там передается только файл, такое я сделать могу и с помощью ajax file upload, мне же надо и форму и файл. Ладно, вроде нашел решение.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB