我想将文件发送到服务器并在那里处理,然后发送响应。 要发送文件,我使用 FormData()的方法,一切似乎都很好,文件已发送,但无法解析 $ _ FILES +仅限内容通过 php://输入
可见我的代码:
HTML
<form id="myform">
<input type="file" name="filename">
<input type="button" name="button" value="Send">
</form>
JS
var form = document.forms.myform;
form.elements.button.onclick = function(){
var file = form.elements.filename.files[0];
if(file){
img(file);
}else{
alert("Not file.");
}
};
function img(file){
var formdata = new FormData();
formdata.append('file', file);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'img.php');
xhr.setRequestHeader('Content-Type', 'multipart/form-data');
xhr.send(formdata);
xhr.onreadystatechange = function(){
if(xhr.readyState != 4) return;
if(xhr.status != 200){
alert("Status: " + xhr.status);
}else{
alert(xhr.responseText);
}
};
}
PHP
<?php
error_reporting(-1);
print_r($_FILES['file']['size']); // only example, doesn't work
$content = file_get_contents('php://input');
print_r($content); // it's work , result in the photo
?>
答案 0 :(得分:0)
<强> 1。为什么文件在$ _FILES?
中不可见因为没有必要使用编码。
<强> 2。如何解析?
使用全局变量$ _FILES
第3。 FormData()是否适用于所有浏览器?