如何使用javascript通过URL将请求中的excel文件传递到服务器?

时间:2019-06-24 09:11:25

标签: javascript php html get xmlhttprequest

你好,我正在尝试使用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文件保存到服务器的方法以及完成该操作的任何其他方法。

0 个答案:

没有答案