Dan*_*ger 1 javascript php html5 download
下载文件后,如何使文件名包含用户的本地时间?
例:
<a href="/pizza.pdf" download="pizza-CURRENT-USER-TIME-HERE.pdf">Click here</a>
Run Code Online (Sandbox Code Playgroud)
以用户的名字命名的下载怎么样?
使用PHP,我知道可以echo将变量添加到文件名中,如下所示:
PHP:
date_default_timezone_set('America/New_York');
$current_date = date('Y-F-j-h-i-s');
Run Code Online (Sandbox Code Playgroud)
HTML:
<a href="/pizza.pdf" download="pizza-<?php echo $current_date; ?>.pdf">Click here</a>
Run Code Online (Sandbox Code Playgroud)
或者,使用JavaScript,我可以在链接中(或屏幕上的任何位置)打印用户的本地时间。
如何获取用户的本地时间作为下载属性的值?
我愿意使用PHP,JS,JQuery等。
您可以使用onclick属性最简单地执行此操作。
<a href="/pizza.pdf" download="pizza-CURRENT-USER-TIME-HERE.pdf" onclick="this.download='pizza-' + getFormattedTime() + '.pdf'">Click here</a>
Run Code Online (Sandbox Code Playgroud)
或者,如果您想使用Jquery:
在HTML中(添加ID,以便我们选择):
<a href="/pizza.pdf" download="pizza-CURRENT-USER-TIME-HERE.pdf" id="download">Click here</a>
Run Code Online (Sandbox Code Playgroud)
在JS中:
$("#download").click(function() {
this.download= 'pizza-' + getFormattedTime() + '.pdf'
}
Run Code Online (Sandbox Code Playgroud)
现在,当用户单击链接时,下载名称将立即更改为当前时间。
这是一个如何获取时间的示例(很大程度上基于此答案):
function getFormattedTime() {
var today = new Date();
var y = today.getFullYear();
// JavaScript months are 0-based.
var m = today.getMonth() + 1;
var d = today.getDate();
var h = today.getHours();
var mi = today.getMinutes();
var s = today.getSeconds();
return y + "-" + m + "-" + d + "-" + h + "-" + mi + "-" + s;
}
Run Code Online (Sandbox Code Playgroud)