繁体   English   中英

使用 PHP 从文件中删除扩展名,然后下载它

[英]using PHP to remove the extension from a file and then downloading it

我最近问了一个与这个问题非常相似的问题,但是在评估我没有以最好的方式解释它之后,我再次以更好的方式再次解释它。

因此,我正在创建一个系统,该系统将从 MySQL 数据库收集数据并使用唯一 ID 下载文件,但是根据该数据库中名为 type 的列的值,该文件可以是从 png 文件到.xml 文件。 我目前正在做的是尝试下载没有任何扩展名的这些文件。

作为一个更容易理解的例子,一个名为 image.png 的文件将被转换为图像然后下载。

有了这个,你可以在本地机器上再次将文件重命名为 image.png 并查看图像。

对于大多数阅读此内容的人来说,这似乎非常低效,但对于我目前的情况,这一切都行得通。

如何删除文件扩展名然后下载它? (在 php 中)

先感谢您。

只需使用标头来指定响应类型。

$filepath = '/wherever/the/file/is.png';
$filename = 'new-cool-name';
header('Content-Type: whatever/content-type-is');
header("Content-disposition: attachment;filename=$filename");
readfile($filepath);

这基本上将具有指定内容类型的响应作为附件发送,附件的正文包含文件内容。 如果您永远不确定内容类型是什么,那么只需使用application/octet-stream

通常,当您开始推送要从服务器端脚本下载的文件时,您可以使用 http 标头(如https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition)来实现。可下载文件的文件名在该标题中指定

好的,从你可以做的文件中删除扩展名是

$withoutExtion = preg_replace('/\\\\.[^.\\\\s]{3,4}$/', '', $youfilename);

...接着是您的文件下载代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM