Имеется такая задача: есть форма, 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}
<script type="text/javascript">
$(document).ready(function(){
$('#upload_image').ajaxForm({
dataType: 'json',
success: processJson
});
});
function processJson(data) {
$('#mainn').html('');
$('#mainn').append(data);
};
</script>