Javascript 文件上载条件不工作我希望它如何工作
我有一个脚本,可以检测文件上传是否包含文件。因此,如果用户按下上载按钮,它将告诉用户文件上载是否包含 文件与否,但我无法解决的问题是,为什么我在没有文件的情况下尝试上载时会出现错误,我认为这会生成if条件 上载中未检测到文件 但它却给了我这个错误Javascript 文件上载条件不工作我希望它如何工作,javascript,php,Javascript,Php,我有一个脚本,可以检测文件上传是否包含文件。因此,如果用户按下上载按钮,它将告诉用户文件上载是否包含 文件与否,但我无法解决的问题是,为什么我在没有文件的情况下尝试上载时会出现错误,我认为这会生成if条件 上载中未检测到文件 但它却给了我这个错误 Notice: Undefined index: image in etc../x.php on line 3 由于某种原因,它仍然执行else条件并结合上述错误 Detected 这对我来说毫无意义。我做错了什么?我怎样才能让它在没有错误的情况下
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我如何才能奖励您的最佳答案?您的有用建议应该得到一些奖励?是否可以在评论部分奖励一个人的最佳答案?我不这么认为,感觉是这样的给予足够的帮助,你会回来承认/确认。谢谢!祝你好运。