【发布时间】:2019-09-10 11:13:15
【问题描述】:
我正在编写一个 Web 应用程序,除其他外,它允许用户将文件上传到我的服务器。为了防止名称冲突和组织文件,我将它们放在我的服务器上后重命名。
我的问题是,有没有办法指定要下载的文件的名称。?因此,用户上传了一个名为“abc.pdf”的文件,我将其重命名为“10.pdf”,但是当他们下载它时,我希望浏览器默认将文件保存为“abc.pdf”。有什么办法吗?
我提到了这个问题
How to set name of file downloaded from browser?
但在我的情况下,我在 javascript 的新选项卡中打开 pdf。当点击 pdf 将获得与存储在服务器中的名称相同的 id,该 id 将引用 DB 并使用 ajax 获取实际名称。但是如何将文件名从 id 重命名为实际名称?
$(document).on('click', '.file', function (e) {
var id = this.id+'.pdf';
$.ajax({
url: "<?php echo base_url() ?>/Directorylist/files",
type: "POST",
datatype: 'json',
success: function (data) {
var actual_name = data;
var win = window.open();
win.location.href="http://localhost:8080/panExplorer/uploads/"+id+"";
},
});
});
【问题讨论】:
-
答案是一样的,你需要重定向到服务器脚本并将标头放入该脚本中。重定向的触发方式无关紧要。
-
你能解释一下吗,我只是初学者。
-
您可以使用
"http://localhost:8080/panExplorer/download.php?file=id"并在download.php 中写入您的标题并从uploads 目录读取pdf 文件。而且我只用 JavaScript 添加了答案。
标签: javascript jquery codeigniter pdf