我一直在以通常的方式上传后操作图像文件,例如将文件从/ tmp文件夹移动到网站的首选文件夹。
现在我想通过将图像保存在临时文件夹中来操作图像,一旦我完成它,然后我想将它移动到首选文件夹。
我想做的是......
这是我的疑惑。
<img src='fetchfromtmp.php?filename>
那样做。不是吗?在php脚本中我可以读取文件,如readfile('tmp / tmpfile')。
那么,最后,会从temp文件夹中操纵好吗?它会有效/暗示吗?可能是什么并发症?如果有的话。
我想为我的想法提供建议和替代方案。 谢谢。
答案 0 :(得分:1)
简短的回答是,这不是一个好主意。 tmp文件夹中的文件可以在没有您干预的情况下删除,因此将它们移动到您自己的应用程序内的临时文件夹,在那里进行处理,一旦完成,将其移动到最终位置。
答案 1 :(得分:1)
但是,您可以通过在上传后将图像移动到应用程序中的tmp目录来解决所有这些问题。这样你知道它不会被删除,你可以轻松地将它提供给用户,你知道你将能够读取该文件。
或者,如果您可以访问php.ini文件,则可以更改upload_tmp_dir并将图像上传到应用程序中的tmp目录。
答案 2 :(得分:1)
我认为您不应该像这样使用临时文件夹,遗憾的是,您必须创建自己的(或使用数据库来存储图像)。原因是你的观点1&amp; 2:
答案 3 :(得分:1)
docs对此非常清楚
如果文件尚未移走或重命名,该文件将在请求结束时从临时目录中删除。
所以你的想法不会奏效。另一方面,在大多数操作系统中重命名文件是一种非常便宜的操作,因此没有充分的理由不立即移动临时文件。
答案 4 :(得分:1)
I think i can do it like <img src='fetchfromtmp.php?filename>. isn't it?
这会给您的服务器带来漏洞。不要忘记默认情况下临时文件夹也会保存会话文件。