Files
freqsplit/backend/api/views.py
T
karthikeyan-ks 10181e4d17 changes
2025-01-06 22:17:09 +05:30

32 lines
1.1 KiB
Python

from django.shortcuts import render
from django.http import JsonResponse
from .tasks import process_uploaded_file
from .forms import UploadFileForm
import os
# Create your views here.
def handle_uploaded_file(f, file_path):
with open(file_path, 'wb+') as destination:
for chunk in f.chunks():
destination.write(chunk)
def upload(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
file = form.cleaned_data['file']
file_path = os.path.join('uploads', file.name) # Change 'uploads' to your desired directory
handle_uploaded_file(file, file_path)
task = process_uploaded_file.delay(file_path)
return JsonResponse({'task_id': task.id})
else:
form = UploadFileForm()
return render(request, 'upload.html', {'form': form})
from celery.result import AsyncResult
def check_task_status(request, task_id):
task_result = AsyncResult(task_id)
return JsonResponse({'status': task_result.status, 'result': task_result.result})