gpt4 book ai didi

php - 在 Symfony 文件对象中加载 'php://temp' 或 'php://memory' 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:49:57 27 4
gpt4 key购买 nike

我的数据库中有一个 blob 资源。我想暂时将这个文件包装到 Symfony File 对象中,因为我想使用特定的方法,如扩展猜测器,并应用 symfony 文件验证器。我想将这个临时文件存储到内存中,因为 blob 是小文件,我不想在每个请求中都在磁盘中创建一个文件。

我试过这样做:

$file = new File ('php://temp');

但是 symfony 抛出一个错误,提示“文件“php://temp”不存在”。查看文件源,错误是由构造函数中进行的“is_file($path)”检查引起的,我可以使第二个参数中的 false 无效。但是,如果我这样做:

$file = new File ('php://temp', false);

文件已创建,但稍后错误又回来了,例如当我使用猜测器时:

$file->guessExtension($file)

因为在 Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php 中:

public function guess($path)
{
if (!is_file($path)) {
throw new FileNotFoundException($path);
}
(...)

好的。那么我的问题是:有一种方法可以在文件对象中加载“php://temp”或“php://memory”吗?

最佳答案

很确定 php://temp 写入内存直到它已满,然后写入文件,而 php://memory 确保只在内存中没有回退。

关于php - 在 Symfony 文件对象中加载 'php://temp' 或 'php://memory' 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30486473/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com