Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用XMLHttpRequest和FormData将文件从用户目录上载到服务器_Javascript_Php_File Upload_Xmlhttprequest_Firefox Addon - Fatal编程技术网

Javascript 使用XMLHttpRequest和FormData将文件从用户目录上载到服务器

Javascript 使用XMLHttpRequest和FormData将文件从用户目录上载到服务器,javascript,php,file-upload,xmlhttprequest,firefox-addon,Javascript,Php,File Upload,Xmlhttprequest,Firefox Addon,我有一个Firefox扩展,它将一些数据写入文本文件,并将其存储在用户目录中的某个位置。 我想将此文件发送到远程服务器。我启动一个文件对象并附加到FormData。但是我从服务器端得到错误400(错误请求)作为响应。 我读了几篇文章,但都假设有一个HTML表单可以从中选择文件。 已编辑:我删除了setRequestHeader行。我再也看不到这个错误了,但是$\u文件是空的,$\u Post是[file]=>[xpconnect-wrapped-nsILocalFile] 这是我的上传方法: v

我有一个Firefox扩展,它将一些数据写入文本文件,并将其存储在用户目录中的某个位置。
我想将此文件发送到远程服务器。我启动一个文件对象并附加到
FormData
。但是我从服务器端得到错误400(错误请求)作为响应。
我读了几篇文章,但都假设有一个HTML表单可以从中选择文件。 已编辑:我删除了setRequestHeader行。我再也看不到这个错误了,但是$\u文件是空的,$\u Post是[file]=>[xpconnect-wrapped-nsILocalFile]

这是我的上传方法:

var remote_server = "http://foo.com/test/?";
function uploadFile(data)
{
var xmlHttp = null;
fileName = "C:/Users/pro/firefox/test.txt";
    var file = Components.classes["@mozilla.org/file/local;1"].
              createInstance(Components.interfaces.nsILocalFile);
    file.initWithPath(fileName);
var form_data = new FormData();                  
    form_data.append("file", file); 

xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "POST", remote_server, false );
//xmlHttp.setRequestHeader("Content-type","multipart/form-data");   
    xmlHttp.send(form_data);
response = xmlHttp.responseText
return response;
}
下面是我服务器端的简单PHP代码:

<?php
echo "hi test";
print_r($_POST);
print_r($_FILES);
?>

已编辑:我删除了setRequestHeader行。我再也看不到这个错误了,但是$\u文件是空的,$\u Post是[file]=>[xpconnect-wrapped-nsILocalFile]。下图显示了从客户端发送到服务器的HTTP数据包


(我的)愚蠢的问题。。你在哪里定义
remote_server
?@cracyon在我的js文件的开头,比如remote_server=“”,你能发布发送错误请求和响应的客户端的网络跟踪吗,这样我们就可以看到发送的实际请求和原始头,等等。。?基本上,核心问题是请求的格式错误,所以服务器拒绝了它。另外,您是否可以访问接收请求的服务器?你能看一下日志来记录错误吗?@crayon请看一下编辑过的部分