def o2sc():
    app = current_app._get_current_object()
    if request.method == 'POST':
        # get the form data
        file = request.files['file']
        delimiter = str(request.form['delimiter'])
        quote_char = str(request.form['quote-char'])
        doc_type = str(request.form['doc-type'])
        file_path_field = str(request.form['file-path-field'])
        unique_id = str(request.form['unique-id'])
        omit = str(request.form['omit'])
        header_mapping = str(request.form['header-mapping'])

        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            c = Converter()

            if '.zip' in filename:
                z = Zip()
                extracted_list = z.unzip(app.config['UPLOAD_FOLDER'], filename)

                for filename in extracted_list:
                    c.convert_file(app.config['UPLOAD_FOLDER'],
                                   app.config['DOWNLOAD_FOLDER'],
                                   filename,
                                   delimiter,
                                   quote_char,
                                   doc_type,
                                   file_path_field,
                                   unique_id,
                                   omit,
                                   header_mapping)

                zip_archive = z.zip(app.config['DOWNLOAD_FOLDER'], extracted_list)
                response = make_response(zip_archive)
                response.headers["Content-Disposition"] = "attachment; filename=_converted_zip_archive.zip"
                return response

            else:
                converted_file = c.convert_file(app.config['UPLOAD_FOLDER'],
                                                app.config['DOWNLOAD_FOLDER'],
                                                filename,
                                                delimiter,
                                                quote_char,
                                                doc_type,
                                                file_path_field,
                                                unique_id,
                                                omit,
                                                header_mapping)
                response = make_response(converted_file)
                response.headers["Content-Disposition"] = "attachment; filename=_converted_" + filename
                return response
    return render_template('o2sc/upload.html')