def METHOD_NAME(article, file):
    # 1. Init Server
    server = build_server(article.journal)
    # 2. Try to get this journal's folder
    folder_id = find_folder(server['server'], server['sid'], article.journal)
    # 2.1 If the journal doesn't have a folder, make one
    if not folder_id:
        folder_id = make_folder(server['server'], server['sid'], article.journal)
    # 3. Prepare the submission
    first_author = article.correspondence_author
    open_file = codecs.open(file.self_article_path(), 'rb')
    data = xmlrpclib.Binary(bytes(open_file.read()))
    article_dict = {
        'title': article.title,
        'author_first': first_author.first_name,
        'author_last': first_author.last_name,
        'filename': os.path.basename(file.original_filename),
        'upload': data,
    }
    submission_dict = {
        'sid': server['sid'],
        'folder': folder_id,
        'uploads': [article_dict],
        'submit_to': 1,
    }
    submission = server['server'].document.add(
        submission_dict
    )
    if submission['status'] == 200:
        return submission['uploaded'][0].get('id')
    else:
        return None