在移动浏览器(Android)中下载文件的PHP脚本

在移动浏览器(Android)中下载文件的PHP脚本,php,android,mobile,download,mobile-browser,Php,Android,Mobile,Download,Mobile Browser,我希望我的移动webapp能够下载文件。不幸的是,我的Android设备告诉我它不支持通过jquery插件jquery.fileDownload.js下载文件。。。 所以我只发送一个jsonP(跨域,因为我的应用程序运行在另一台服务器上)请求 我的php脚本看起来 ob_clean(); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; fi

我希望我的移动webapp能够下载文件。不幸的是,我的Android设备告诉我它不支持通过jquery插件jquery.fileDownload.js下载文件。。。 所以我只发送一个jsonP(跨域,因为我的应用程序运行在另一台服务器上)请求

我的php脚本看起来

    ob_clean();
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="file.JPG"');
    readfile('/var/.../file.JPG');
    die();
在我的android chrome浏览器中,在发送jsonp请求后,什么都没有发生。 我做错了什么?难道不能通过jsonp下载文件吗?测试了相同的代码 在我的桌面上,浏览器工作得很好


提前感谢。

JSONP要求您发回实际的可执行javascript代码。您只是在转储一些基本上是随机的字节,您的浏览器将尝试执行这些字节,但却失败得很惨

你需要先做一些阅读:

您需要使用正确的JSONP回调进行响应,并将文件数据作为参数包括在内,例如

header('Content-Type: text/javascript');
echo "jsonCallback(", json_encode(file_get_contents('your file here')); , ");"

你好谢谢你的回答。但是,我如何告诉jsonCallback方法中的浏览器应该开始下载json_编码的数据呢?我得到的参数只是文件内容。。。据我所知,你不能从javascript开始下载…请阅读维基百科链接。它解释了整个过程。