Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 获取通过Python Flask应用上传的文件的绝对文件名_Python 3.x_Flask - Fatal编程技术网

Python 3.x 获取通过Python Flask应用上传的文件的绝对文件名

Python 3.x 获取通过Python Flask应用上传的文件的绝对文件名,python-3.x,flask,Python 3.x,Flask,我正在尝试创建一个flask应用程序,可用于将任何用户选择的文件上载到我的azure存储。出于某种原因,上载文件的mime类型始终设置为“应用程序/八位字节流”。如果我使用azure的UI直接将文件上载到azure,则mime类型是正确的。为了解决这个问题,我尝试手动计算文件的mimetype并将其作为元数据传递。 我遇到的问题是,我无法找到一种方法来获取要上载的用户所选文件的绝对文件路径。 我要查找的是绝对路径:path/to/file/doctest2.txt 以下是flask应用程序的外

我正在尝试创建一个flask应用程序,可用于将任何用户选择的文件上载到我的azure存储。出于某种原因,上载文件的mime类型始终设置为“应用程序/八位字节流”。如果我使用azure的UI直接将文件上载到azure,则mime类型是正确的。为了解决这个问题,我尝试手动计算文件的mimetype并将其作为元数据传递。 我遇到的问题是,我无法找到一种方法来获取要上载的用户所选文件的绝对文件路径。

我要查找的是绝对路径:path/to/file/doctest2.txt

以下是flask应用程序的外观:

@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获取文件名,但我不确定如何在这里获取完整路径。 完整代码可在此处找到:

最终目标是计算要上载的文件的mimetype。
我有文件blobvariable f。有没有更好的方法从blob获取mime,而不是搜索绝对文件路径

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

mime_type = f.content_type
这为我提供了文件的mimetype,并消除了获取文件绝对路径的需要