Added upload file handler.
#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/')