繁体   English   中英

如何使用javascript中的$ .post函数访问具有post方法的页面以下载文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM