Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create directory while upload using django

After uploading a file from the UI, how to create the a new directory with the current timestamp in /opt/files/ and copy the uploaded zip file to this directory, and unzip the zip file in the new directory and maintain the new directory name in a variable

def upload_info(request):
    if request.method == 'POST':
        file=request.FILES['file']
        dir = "/opt/files"
        file_name = "%s/%s" % (dir, file.name)
        form = UploadFileForm(request.POST, request.FILES)
        try:
            handle_uploaded_file( file_name , file )

def handle_uploaded_file(file_name,f):
    destination = open(file_name, 'wb+')
    for chunk in f.chunks():
        destination.write(chunk)
    destination.close()
    return
like image 427
Hulk Avatar asked Dec 16 '22 22:12

Hulk


2 Answers

Creating a directory can be achieved using Python's os module (see documentation). For example:

import os
from datetime import datetime
dirname = datetime.now().strftime('%Y.%m.%d.%H.%M.%S') #2010.08.09.12.08.45 
os.mkdir(os.path.join('/opt/files', dirname))

You can use os.rename (documentation) to move the file as you choose (provided you have the necessary permissions). Unzipping can be done through the command line using Subprocesses or using a Python module (Examples using gzip module can be found here).

like image 105
Manoj Govindan Avatar answered Jan 03 '23 06:01

Manoj Govindan


Here's a function I use:

def makedirs(path):
    try:
        os.makedirs(path)
    except OSError as e:
        if e.errno == 17:
            # Dir already exists. No biggie.
            pass
like image 37
Josh Avatar answered Jan 03 '23 05:01

Josh