diff -r 5fb12cd6d64d -r 6d3b60546075 upload/views.py --- a/upload/views.py Wed Sep 02 16:59:27 2009 +0530 +++ b/upload/views.py Wed Sep 02 17:19:11 2009 +0530 @@ -1,1 +1,51 @@ -# Create your views here. +#can add features like: supporting files with specified extensions, making edit box of content better etc. +from django.http import HttpResponse +from django.template import Context, Template +from django.shortcuts import render_to_response +from form import FileForm, Uploaded_fileForm +import tarfile + +#function to read the upoaded file and store it +def handle_uploaded_file(f): + destination = open(f.name, 'wb+') + for chunk in f.chunks(): + destination.write(chunk) + destination.close() + +#view to handle uploaded file, showing content of file, and option of uploading a file +def upload_file(request,template_name='index.html'): + if request.method == 'POST': + form = FileForm(request.POST, request.FILES) + if form.is_valid(): + #if else for checking the size of uploaded file + handle_uploaded_file(request.FILES['file']) + uploaded_form = Uploaded_fileForm(initial={'content': open(request.FILES['file'].name).read()}) + c = Context({'form': uploaded_form, + 'value': False, + }) + #display a page with textbox and all the content of file + return render_to_response(template_name, + context_instance = c) + c = Context({'form': FileForm(), + 'value': True, + }) + return render_to_response(template_name, + context_instance = c) + +#to create the dump of content shown in text box and then making it downloadable +def file_archive(request): + if request.method == 'POST': + form = Uploaded_fileForm(request.POST, request.FILES) + if form.is_valid(): + response = HttpResponse(mimetype='application/tar') + response['Content-Disposition'] = 'attachment; filename=content.tar' + content = open('download.txt','w') + content.write(form.cleaned_data['content']) + content.close() + tar = tarfile.open('download.tar','w') + tar.add('download.txt') + tar.close() + response.write(open('download.tar').read()) + return response + return HttpResponseRedirect('/ocr/') +