你好,我正在尝试使用javascript将xmlHttpResponse对象传递给php服务器。我有一个网址(http://172.16.73.199:4848/Exports/8757e920-838c-4844-a48a-27a1f3325052/be483c2b-9b9a-401d-addb-f428a70507f5.xlsx),该网址在浏览器中打开时会下载一个excel文件。但是,该url在网络外部不起作用,它仅在Intranet或类似的东西中起作用。因此,我没有在服务器端打开url,而是尝试使用XMLHttpRequest获取url的响应,将其存储在变量中并将该变量传递给php服务器。但是,不是接收响应,而是在PHP服务器上接收XMLHttpRequest对象的字符串名称。我想将Excel文件传输到php服务器。我只有链接,需要通过链接保存到php服务器。
(上面的URL无法打开,但是您可以使用与https://file-examples.com/wp-content/uploads/2017/02/file_example_XLSX_5000.xlsx类似的URL,这将下载excel文件。)
客户端(JavaScript)
var xmlHttp = new XMLHttpRequest();
var theUrl = "http://172.16.73.199:4848/Exports/8757e920-838c-4844-a48a-27a1f3325052/be483c2b-9b9a-401d-addb-f428a70507f5.xlsx";
xmlHttp.open( "GET", theUrl,true ); // false for synchronous request
xmlHttp.send( null );
xmlHttp.responseText;
document.write("<iframe src='https://172.16.73.199:81/xampp/filedownload/get.php?q="+xmlHttp+"' width=700 height=700>");
我已经将XmlHttpRequest对象创建为xmlHttp,然后使用了xmlHttp.open()方法。而且我正在使用iframe在同一页面内显示php服务器页面,以检查php的请求方法。在此之前,我很累地检查以下内容
console.log(xmlHttp.responseXml)
错误:未定义
console.log(xmlHttp.responseJson)
错误:空
console.log(xmlHttp.responseText)
输出:充满特殊字符,使用UTF-8编码 (类似于尝试在记事本中打开pdf文件或excel文件时。我什至尝试将特殊符号或编码数据复制到记事本中,并将其另存为excel文件(即“ .xlsx”文件)。但是当打开该excel文件时,数据没有被解码,它仍然显示为特殊符号(已编码),并且所有数据都在第一个单元格中。)
服务器端(PHP)[“ get.php”]
<?php
echo $_REQUEST;
echo var_dump($_REQUEST);
echo $_REQUEST['q'];
?>
输出
注意:数组到字符串的转换 C:\ xampp \ htdocs \ xampp \ filedownload \ get.php在第1行Array array(1){ [“ q”] =>字符串(23)“ [object XMLHttpRequest]”} [object XMLHttpRequest]
有人可以帮忙找到从客户端将excel文件保存到服务器的方法以及完成该操作的任何其他方法。