如何动态更改使用php下载的文件名?这个Excel表格是使用Javascript从HTML表格转换而来的。现在我想在每次下载时动态更改文件名。我正在使用一个input
类型的按钮作为下载按钮。动态更改下载的文件名
编者按:根据意见 ,如下这个问题可能会改写。
我希望人们能够从服务器下载Excel工作表。如何强制文件下载并根据月份设置文件的名称?当我下载的文件就说明“ download.xls ”
No code provided
看评论:
如何动态更改使用php下载的文件名?这个Excel表格是使用Javascript从HTML表格转换而来的。现在我想在每次下载时动态更改文件名。我正在使用一个input
类型的按钮作为下载按钮。动态更改下载的文件名
编者按:根据意见 ,如下这个问题可能会改写。
我希望人们能够从服务器下载Excel工作表。如何强制文件下载并根据月份设置文件的名称?当我下载的文件就说明“ download.xls ”
No code provided
看评论:
可以重命名PHP的重命名功能http://php.net/manual/en/function.rename.php
服务器上的文件,你写
这个Excel片使用Javascript从HTML表转换。
这意味着HTML表格在客户端已经可以作为EXCEL文件使用。
如果是这样的话,没有理由将转换后的EXCEL文件从客户端推回到服务器,这样客户端就可以再次从服务器上下载它。这是没有意义的,浪费无用循环的带宽。换句话说:当EXCEL文件已经驻留在客户端的Javascript内存中时,所有您需要做的就是根据Javascript的Math.random()
将您的(Javascript转换的)EXCEL文件存储到文件名中。至于简单的文件保存方法,诸如HTML5的文件保存功能(作为多种方式之一)可能会成为您最好的朋友。
想一想:如果你坐在家中的沙发上,你不会开车上班只是为了能够回家,从家里的厨房里取冰箱里的啤酒,是吗?对,你只要呆在家里,走进厨房拿起啤酒。 ;)
同样在这里:如果您将其转换为客户端,并且客户端在他的计算机内存中有该文件,请让他将其保存到他的磁盘上。不要强迫他上传整个文件,以便他可以下载它......正如所说:Javascript的Math.random()
使您能够生成一个随机数,您可以使用它随机创建随机文件名。
:
但如何根据这些每月下载的文件保存与动态文件名。
要创建基于当月的文件名,你可以使用JavaScript的日期是这样的:
var now = new Date();
var month = now.getMonth();
如果你正在寻找的提示如何存储你的文件的客户端,你可能想潜入:
如果你想处理IT方面erver端和推向使用PHP与基于year-month-day
自己的文件名客户端的文件,你可以去这样的:
<?php
$realname = './data.xls';
if (file_exists($realname))
{
$randname = 'YourExcelFilename'.gmdate('Y-m-d').'.xls';
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename='.$randname);
header('Content-Length: '.filesize($realname));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
ob_clean();
flush();
readfile($file);
}
exit();
?>
(EDIT 2:通过去除2个不必要的标题更正上面的例子thanks to a comment by @Herbert)
如果你想要更多的替代解决方案,你可能要检查的答案the two questions I linked in my first comment因为你的问题是这些问题的一个潜在的重复
将生成的文件名应用于Content-Disposition标头。
header("Content-Disposition: attachment; filename=\"$random_filename\"");
header('Content-type: application/vnd.ms-excel');
readfile($actual_filename);
你用什么代码下载文件? – putvande
另外,是否要更改服务器上文件的名称或保持服务器上文件的名称相同,但更改下载文件的名称? – putvande
雅我想保持在服务器上的文件的名称相同 – rahul