Python Flask文件上传/下载

系统 2106 0

Flask app 配置

配置内容:文件夹路径,运行的文件类型,文件大小限制

            
              
                from
              
               flask 
              
                import
              
               Flask

FILE_FOLDER 
              
                =
              
              
                'path/to/file_folder'
              
              
ALLOWED_EXTENSIONS 
              
                =
              
              
                set
              
              
                (
              
              
                [
              
              
                'png'
              
              
                ,
              
              
                'jpg'
              
              
                ,
              
              
                'jpeg'
              
              
                ]
              
              
                )
              
              

app 
              
                =
              
               Flask
              
                (
              
              __name__
              
                )
              
              
app
              
                .
              
              config
              
                [
              
              
                'UPLOAD_FOLDER'
              
              
                ]
              
              
                =
              
               FILE_FOLDER
app
              
                .
              
              config
              
                [
              
              
                'MAX_CONTENT_LENGTH'
              
              
                ]
              
              
                =
              
              
                16
              
              
                *
              
              
                1024
              
              
                *
              
              
                1024
              
            
          

上传及下载文件

            
              
                from
              
               backend 
              
                import
              
               ALLOWED_EXTENSIONS
              
                ,
              
               app
              
                ,
              
               FILE_FOLDER

              
                from
              
               flask 
              
                import
              
               request
              
                ,
              
               send_file
              
                ,
              
               Blueprint

              
                from
              
               werkzeug
              
                .
              
              utils 
              
                import
              
               secure_filename

              
                import
              
               os

blueprint 
              
                =
              
               Blueprint
              
                (
              
              
                'file'
              
              
                ,
              
               __name__
              
                )
              
              
                def
              
              
                allowed_file
              
              
                (
              
              filename
              
                )
              
              
                :
              
              
                return
              
              
                '.'
              
              
                in
              
               filename 
              
                and
              
               \
           filename
              
                .
              
              rsplit
              
                (
              
              
                '.'
              
              
                ,
              
              
                1
              
              
                )
              
              
                [
              
              
                1
              
              
                ]
              
              
                .
              
              lower
              
                (
              
              
                )
              
              
                in
              
               ALLOWED_EXTENSIONS



              
                def
              
              
                upload_file
              
              
                (
              
              file_id
              
                )
              
              
                :
              
              
                if
              
              
                'file'
              
              
                not
              
              
                in
              
               request
              
                .
              
              files
              
                :
              
              
                return
              
              
                False
              
              
                ,
              
              
                "No file part"
              
              
                file
              
              
                =
              
               request
              
                .
              
              files
              
                [
              
              
                'file'
              
              
                ]
              
              
                if
              
              
                file
              
              
                .
              
              filename 
              
                ==
              
              
                ''
              
              
                :
              
              
                return
              
              
                False
              
              
                ,
              
              
                "No selected file"
              
              
                if
              
              
                file
              
              
                and
              
               allowed_file
              
                (
              
              
                file
              
              
                .
              
              filename
              
                )
              
              
                :
              
              
        filename 
              
                =
              
               secure_filename
              
                (
              
              
                file
              
              
                .
              
              filename
              
                )
              
              
        save_name 
              
                =
              
               f
              
                "{file_id}-{filename}"
              
              
                file
              
              
                .
              
              save
              
                (
              
              os
              
                .
              
              path
              
                .
              
              join
              
                (
              
              app
              
                .
              
              config
              
                [
              
              
                'UPLOAD_FOLDER'
              
              
                ]
              
              
                ,
              
               save_name
              
                )
              
              
                )
              
              
                return
              
              
                True
              
              
                ,
              
               save_name


@blueprint
              
                .
              
              route
              
                (
              
              
                '/
                
                  '
                
              
              
                ,
              
               methods
              
                =
              
              
                [
              
              
                'GET'
              
              
                ]
              
              
                )
              
              
                def
              
              
                download_file
              
              
                (
              
              file_name
              
                )
              
              
                :
              
              
                if
              
              
                '/'
              
              
                in
              
               file_name
              
                :
              
              
                return
              
              
                'error'
              
              
                ,
              
              
                400
              
              
                if
              
               file_name
              
                :
              
              
                return
              
               send_file
              
                (
              
              f
              
                "{FILE_FOLDER}/{file_name}"
              
              
                ,
              
               attachment_filename
              
                =
              
              
                'file.jpg'
              
              
                )
              
              
                return
              
              
                'error'
              
              
                ,
              
              
                400
              
            
          

Flask file upload 官方文档


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论