Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在下载文件之前使用PHP重命名文件,而不将其保存到服务器?_Php - Fatal编程技术网

在下载文件之前使用PHP重命名文件,而不将其保存到服务器?

在下载文件之前使用PHP重命名文件,而不将其保存到服务器?,php,Php,我有一个Adobe Illustrator文件AI,我们目前在一个网站上有一个链接,然后将该文件下载到您的计算机上 链接看起来像这样。。。 http://domain.com/crm/index.php?entryPoint=fileupload_download&id=22440435-e8ee-bd6f-7612-533b2cd7690f&field=fuaifile\U c&type=D1\U设计 我需要做的是在下载时重命名此文件 因此,我想问的是,是否有可能在下载之前通过另一个PHP文件

我有一个Adobe Illustrator文件AI,我们目前在一个网站上有一个链接,然后将该文件下载到您的计算机上

链接看起来像这样。。。 http://domain.com/crm/index.php?entryPoint=fileupload_download&id=22440435-e8ee-bd6f-7612-533b2cd7690f&field=fuaifile\U c&type=D1\U设计

我需要做的是在下载时重命名此文件


因此,我想问的是,是否有可能在下载之前通过另一个PHP文件进行下载,这将允许我动态更改用户下载的文件名。我无法更改服务器上的文件名,但当它下载时,如果可能的话,我希望能够在文件名中动态添加一些ID号?您知道如何在不使用新名称在服务器上重新保存图像的情况下完成此操作吗?

您要查找的是标题,如中所述:


您可以使用PHP函数设置此标头。

您要查找的是标头,如中所述:

您可以使用PHP函数设置此标题。

只需设置内容配置:

来自PHP文档的示例:

正在添加id:

$id = generateIdFromSomewhere();
header('Content-Disposition: attachment; filename="downloaded'.$id.'.pdf"');
只需设置内容配置:

来自PHP文档的示例:

正在添加id:

$id = generateIdFromSomewhere();
header('Content-Disposition: attachment; filename="downloaded'.$id.'.pdf"');

这很难看,并且假设这些文件不是超出内存限制的大文件,但是

$data = file_get_contents($original_url);
header('Content-disposition: attachment; filename="new name with id numbers');
header("Content-type: application/octet-stream");
echo $data;

您可以随时增强这一点,以执行字节服务—从原始url吸取10k,向用户吐出10k,等等

这很难看,并且假设这些文件不是超出内存限制的大文件,但是

$data = file_get_contents($original_url);
header('Content-disposition: attachment; filename="new name with id numbers');
header("Content-type: application/octet-stream");
echo $data;

您可以随时增强这一点,以执行字节服务—从原始url吸取10k,向用户吐出10k,等等

您的PHP代码目前看起来像什么?您如何提供该文件供下载?如何设置标题?您只需要添加标题的内容配置:附件;文件名='。$yourFileName;设置这个标题,你应该准备好了:header'Content-Disposition:attachment;filename=newFileName.ext'@蒙克宙斯,我不明白?这个网站的目的是帮助其他人回答编程问题,如果你通读了这些评论,你会发现这不是一个看起来那么简单的问题,我有一个脚本,我没有权限设置标题输出,然后我需要通过另一个脚本传递这些文件并输出它们,更不用说文件的源代码要求我的脚本卷曲并登录到SuagrCRM,以获得所需的适当文件。您的PHP代码当前是什么样子的?您如何提供该文件供下载?如何设置标题?您只需要添加标题的内容配置:附件;文件名='。$yourFileName;设置这个标题,你应该准备好了:header'Content-Disposition:attachment;filename=newFileName.ext'@蒙克宙斯,我不明白?这个网站的目的是帮助其他人回答编程问题,如果你通读了这些评论,你会发现这不是一个看起来那么简单的问题,我有一个脚本,我没有权限设置标题输出,然后我需要通过另一个脚本传递这些文件并输出它们,更不用说文件的来源要求我的脚本卷曲并登录到SuagrCRM,只是为了获得所需的适当文件。我没有提到的是我下载图像的当前URL位于SugarCRM内部,我无法更改该文件头,我几乎需要一个新的PHP脚本,它将从URL下载文件,然后重新发送到浏览器,如果这有意义的话,比如一个相对的原因,你不能将它添加为对SugarCRM的修改?主要是时间限制,我正在寻找一种快速的方法,我认为@Marc B可能会成功,感谢我没有提到的是我下载图像的当前URL在SugarCRM中,我无法更改文件头,我几乎需要一个新的PHP脚本,它将从URL下载文件,然后重新发送到浏览器,如果这有意义的话,就像一个相对的原因,你不能把它作为对SugarCRM的一个修改?主要是时间限制,我在寻找一个快速的方法,我认为@Marc B可能会起作用,感谢这似乎更符合我必须做的事情,因为我无法更改原始下载文件的标题…这将像一个中继,这似乎是我需要做的,我将尝试一下,谢谢这似乎更符合我将要做的,因为我无法更改原始下载文件的标题…这将像一个中继,这似乎是我需要做的我会尝试一下,谢谢