Flask 文件发送:send_from_directory vs send_file 详细对比
`send_from_directory`和`send_file`都是Flask框架提供的用于发送文件的方法,但是它们之间有一些区别。
-
`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') -
`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`适合于发送单个文件,可以设置附件下载等选项,并且可以直接输入文件对象。
注意:在使用这些方法时,需要确保文件路径正确并且文件存在,否则会投出异常。
原文地址: https://www.cveoy.top/t/topic/p2Ts 著作权归作者所有。请勿转载和采集!