获取通过Python Flask App上传的文件的绝对文件名

时间:2019-01-07 23:51:09

标签: python-3.x flask

我正在尝试创建一个Flask应用程序,该应用程序可用于将任何用户选择的文件上传到我的Azure存储中。由于某些原因,上载文件的mime类型始终设置为“ application / octet-stream”。如果我直接使用其用户界面将文件上传到azure,则mime类型是正确的。为了解决此问题,我尝试手动计算文件的模仿类型并将其作为元数据传递。 我遇到的问题是我无法找出一种方法来获取要上传的用户所选文件的绝对文件路径。 enter image description here

我要寻找的是绝对路径:path / to / file / 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

最终目标是计算要上传文件的模仿类型。 我确实有文件blob(变量f)。是否有更好的方法从blob获取mime,而不是寻找绝对文件路径?

1 个答案:

答案 0 :(得分:0)

我通过使用以下代码行解决了我的问题:

mime_type = f.content_type

这给了我文件的模仿性,并消除了获取文件绝对路径的需要。