[英]How can I use $.post function in javascript to visit a page with post method to download a file?
我想编写一个文件下载页面,供客户从我的公司服务器下载文件。
而且我不想向用户公开真实的文件链接,所以我有两个页面:filelist.php,用于提供单击链接,并将文件名作为参数发布到另一页面上,名为download.php,接受请求并将文件流传输给客户。
download.php的关键部分是这样的:
$fp = fopen($real_file_path,'r');
$file_size = $temp_res['ef_file_bytes'];
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".$file_size);
Header("Content-Disposition: attachement;filename=".$file_name);
echo fread($fp,$file_size);
fclose($fp);
exit;
现在,我在filelist.php中使用onclick()函数,当单击文件链接时,以下函数被调用:
function downloadfile( ef_name )
{
var url_str='download.php';
url_str = encodeURI(url_str);
$.post(
url_str,{fnm:ef_name },
function(data){
window.open().document.write(data);
}
);
}
但是我只能在页面中显示文件的内容,而不能弹出对话框来保存它。
如果我用来测试,那么效果很好。
上面的JS代码中的“数据”正是我要下载的文件的全部内容。 我认为问题出在我在$ .post()中使用的函数中; javascript中是否有任何函数可以使用post参数打开新页面?
我在Windows,apache,php,mysql上。谢谢!
您不能使用$.post
但是可以使用method="POST"
创建隐藏form
并提交。 (可选)一个隐藏的iframe
用作接收结果的target
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.