Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 文件上载条件不工作我希望它如何工作_Javascript_Php - Fatal编程技术网

Javascript 文件上载条件不工作我希望它如何工作

Javascript 文件上载条件不工作我希望它如何工作,javascript,php,Javascript,Php,我有一个脚本,可以检测文件上传是否包含文件。因此,如果用户按下上载按钮,它将告诉用户文件上载是否包含 文件与否,但我无法解决的问题是,为什么我在没有文件的情况下尝试上载时会出现错误,我认为这会生成if条件 上载中未检测到文件 但它却给了我这个错误 Notice: Undefined index: image in etc../x.php on line 3 由于某种原因,它仍然执行else条件并结合上述错误 Detected 这对我来说毫无意义。我做错了什么?我怎样才能让它在没有错误的情况下

我有一个脚本,可以检测文件上传是否包含文件。因此,如果用户按下上载按钮,它将告诉用户文件上载是否包含

文件与否,但我无法解决的问题是,为什么我在没有文件的情况下尝试上载时会出现错误,我认为这会生成if条件

上载中未检测到文件

但它却给了我这个错误

Notice: Undefined index: image in etc../x.php on line 3
由于某种原因,它仍然执行else条件并结合上述错误

Detected
这对我来说毫无意义。我做错了什么?我怎样才能让它在没有错误的情况下产生正确的条件

这是我的密码

index.php

<script>
document.addEventListener('DOMContentLoaded', function(){

document.getElementById('upload').addEventListener("click",executeAjax);

function executeAjax(){

var xhr= new XMLHttpRequest();
xhr.onreadystatechange = function(){

    if(xhr.readyState === 4){
        document.getElementsByClassName('output-container')[0].innerHTML= xhr.responseText;
    }
}

    var data = new FormData();

  //Var structure
  var image=  document.getElementById('image').files[0];

  data.append('image',image);

  xhr.open('POST','x');
  xhr.send(data);
}

});
</script>

<input id='image' type='file'>

<button id='upload'>Upload</button>

<div class='output-container'><div>
<?php

if($_FILES['image']['error']  == 4)
{
echo 'No file detected in upload';
}
else{
    echo 'Detected';
}
?>

document.addEventListener('DOMContentLoaded',function(){
document.getElementById('upload').addEventListener(“单击”,executeAjax);
函数executeAjax(){
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=函数(){
if(xhr.readyState==4){
document.getElementsByClassName('output-container')[0].innerHTML=xhr.responseText;
}
}
var data=new FormData();
//Var结构
var image=document.getElementById('image')。文件[0];
data.append('image',image);
xhr.open('POST','x');
发送(数据);
}
});
上传
x.php

<script>
document.addEventListener('DOMContentLoaded', function(){

document.getElementById('upload').addEventListener("click",executeAjax);

function executeAjax(){

var xhr= new XMLHttpRequest();
xhr.onreadystatechange = function(){

    if(xhr.readyState === 4){
        document.getElementsByClassName('output-container')[0].innerHTML= xhr.responseText;
    }
}

    var data = new FormData();

  //Var structure
  var image=  document.getElementById('image').files[0];

  data.append('image',image);

  xhr.open('POST','x');
  xhr.send(data);
}

});
</script>

<input id='image' type='file'>

<button id='upload'>Upload</button>

<div class='output-container'><div>
<?php

if($_FILES['image']['error']  == 4)
{
echo 'No file detected in upload';
}
else{
    echo 'Detected';
}
?>


值4的文档

您希望对
$\u文件['image']
执行
isset()
,如
isset($\u文件['image'])
,这就是您应该执行检查以查看是否提供了文件的方式。直接使用
$\u FILES['image']
意味着您已经确定那里有一个文件。我有一种感觉可以工作,但我猜是JavaScript的新表单方法没有完全模拟我最初在index.php的同一页面上使用表单标记设置的功能,它与if($\u)文件完美配合['image']['error']==4)但是,ma是否很快就另一个主题发表了一篇新文章,涉及PHP的$u FILES方法和JS new form方法的问题,但感谢您的回答。@coderodour我如何才能奖励您的最佳答案?您的有用建议应该得到一些奖励?是否可以在评论部分奖励一个人的最佳答案?我不这么认为,感觉是这样的给予足够的帮助,你会回来承认/确认。谢谢!祝你好运。