我想使用ajax功能下载,用户将点击下载链接(使用ajax和$ _GET)访问PHP文件,该文件将处理发送的$ _GET变量并访问正确的文件进行下载.
我有一些PHP脚本来处理$ _GET变量的处理,这些变量可以自己工作,但是当使用Ajax访问时,它们就会停止工作.
我正在使用的Ajax/PHP代码如下:
function ajaxDown(){
$('#downloadmsg').html(
'<img src=\"media/images/ajaxloader.gif\" width=\"128\" height=\"15\">');
$('#downloadmsg').load(
'media/downloads/downManager.php?file=".$filequery['filename']."&ftype=".$downex[1]."');
}
Run Code Online (Sandbox Code Playgroud)
请查看我的代码并帮助我找到我做错的事情.
感谢名单
我有一个脚本从$ _GET ['key']获取一个键,查找数据库中的位置并使用readfile和一些标题来提供下载供使用.这适用于Firefox而不是IE8,无法在另一个IE上测试它.我在IE中收到以下错误:"Internet Explorer无法从www.example.com下载download.php".好像它正在尝试下载PHP脚本.
$the_query = "SELECT * FROM `files` WHERE `user_id`=" . $_SESSION['user_id'] . " AND `key`='" . $key . "'";
$result = mysql_query($the_query);
$row = mysql_fetch_array($result);
$file = '/var/www/vhosts/www.example.com/httpsdocs/uploads/' . $row['id'] . '/' . $row['file'];
header("Content-type: application/octet-stream");
header("Content-length: ".filesize($file));
header('Content-Description: File Transfer');
header("Cache-control: private");
header('Content-Disposition: attachment; filename=' . rawurlencode(basename($file)));
readfile($file);
Run Code Online (Sandbox Code Playgroud)