Получение абсолютного имени файла, загруженного через приложение Python Flask - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь создать приложение для колб, которое можно использовать для загрузки любого выбранного пользователем файла в мое хранилище Azure. По какой-то причине mime-тип загружаемого файла всегда установлен на «application / octet-stream». Если я напрямую загружаю файл в Azure, используя его интерфейс, то MIME-тип правильный. Чтобы решить эту проблему, я пытаюсь вручную вычислить mimetype файла и передать его как метаданные. У меня проблема в том, что я не могу найти способ получить абсолютный путь к файлу выбранного пользователем файла для загрузки. enter image description here

Я ищу абсолютный путь: путь / к / файлу / doctest2.txt

Вот как выглядит приложение для колб:

@app.route('/', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        file = request.files['file']
        filename = secure_filename(file.filename)
        fileextension = filename.rsplit('.',1)[1]
        Randomfilename = id_generator()
        filename = Randomfilename + '.' + fileextension
        try:
            blob_service.create_blob_from_stream(container, filename, file)
        except Exception:
            print 'Exception=' + Exception 
            pass
        ref =  'http://'+ account + '.blob.core.windows.net/' + container + '/' + filename

похоже, что мы можем получить имя файла, используя f.filename, но я не уверен, как получить полный путь здесь. Полный код можно найти здесь: https://github.com/codesagar/Azure-Blobs/blob/master/blob.py

Конечная цель - вычислить mimetype файла для загрузки. У меня есть файл-блоб (переменная f). Есть ли лучший способ получить mime из BLOB-объекта, а не искать абсолютный путь к файлу?

1 Ответ

0 голосов
/ 08 января 2019

Я решил свою проблему, используя следующую строку кода:

mime_type = f.content_type

Это дает мне mimetype файла и устраняет необходимость получения абсолютного пути к файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...