使用ajax下载文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ajax下载文件相关的知识,希望对你有一定的参考价值。
我试图为我的RaspberryPi创建某种云。用户可以登录,上传和下载他们有权访问的文件。
为了提供这种安全性,文件存储在目录“/ var / www / files /”中,因此在某个地方浏览器无法直接访问它们。
通过php,应启动下载(在检查用户权限后)。
上传文件的逻辑,并显示我已经实现的存储文件,但我很难找到如何下载文件的解决方案。
上传正在使用ajax调用,不确定是否可以使用该方法进行下载。
答案
您可以使用PHP下载网站根目录之外的文件。这很简单:
<?php
$path = <path to the file to be downloaded>;
readfile($path);
见:http://php.net/manual/en/function.readfile.php
确保您可以访问该文件,并将此PHP代码放在浏览器可访问的文件中。使用几个标题,您可以使它更好:
<?php
$path = <path to the file to be downloaded>;
$name = 'Your download name';
$size = filesize($path);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$name);
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: '.$size);
readfile($path);
但最终它完全一样。如果您想进行一些身份验证,可以在PHP中执行此操作。
以上是关于使用ajax下载文件的主要内容,如果未能解决你的问题,请参考以下文章