2010-10-14 159 views
0

好的,我已经通过“相关问题”部分很好的阅读,我还没有找到答案。我正在使用ajax请求force a php download。事情在PHP结束时工作正常。假设我有一个名为DATA的数据流。现在,我想弹出一个“另存为...”对话框。Javascript处理php读取文件八位字节流

浏览器收到一串十六进制值。现在,我该如何处理客户端(javascript)上的这个DATA

这是我使用的PHP代码,每上面的链接:

header('Content-type: application/octet-stream'); 
header('Content-Disposition: attachment; filename=$file'); 
readfile($file); 

我已经试过

  • window.open(DATA) - >六角流不存在提交表单与动作作为DATA(当然)
  • - >同样的问题

顺便说一句,如果我从PHP回显文件,然后使用window.open,它有时会起作用。但不适用于txt文件或jpgs等

我见过这个工作在其他网站 - 他们是怎么做到的?提前致谢。

回答

0

这是我一直在寻找的答案:

window.open("downloadPage.php"); 

...它每次弹出一个框。 ajax请求的问题是返回的文件流被解释为XMLHttpRequestObj.reponseText

浏览器显然对此有不同解释,并且不允许下载。