`send_from_directory`和`send_file`都是Flask框架提供的用于发送文件的方法,但是它们之间有一些区别。

  1. `send_from_directory方法用于从指定的目录中发送文件。它的语法如下:

    send_from_directory(directory, filename, **options)
    
    • directory是文件所在的目录路径。
    • filename是要发送的文件名称。
    • options是可选参数,用于设置其他选项,比如设置`as_attachment=True`表示将文件作为附件下载。

    例如,发送目录`/var/www/static`下的文件`example.txt`:

    return send_from_directory('/var/www/static', 'example.txt')
    
  2. `send_file方法用于发送单个文件。它的语法如下:

    send_file(filename_or_fp, mimetype=None, as_attachment=False, attachment_filename=None, **options)
    
    • filename_or_fp是要发送的文件路径或文件对象。
    • mimetype是文件的MIME类型,如果不指定,则根据文件名称自动推断。
    • as_attachment表示是否将文件作为附件下载,默认为`False`。
    • attachment_filename是发送时的文件名称,如果不指定,则使用原始文件名称。

    例如,发送文件`example.txt`:

    return send_file('example.txt')
    

`send_from_directory`适合于发送指定目录下的文件,可以设置附件下载等选项。 `send_file`适合于发送单个文件,可以设置附件下载等选项,并且可以直接输入文件对象。

注意:在使用这些方法时,需要确保文件路径正确并且文件存在,否则会投出异常。

Flask 文件发送:send_from_directory vs send_file  详细对比

原文地址: https://www.cveoy.top/t/topic/p2Ts 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录