我有一个表单,它有一个文件类型输入来上传图像,但它总是会显示“通知:未定义的索引”,我看到 $_FILE 变空了,但我在网上找到的答案都没有帮助我.
我有一个项目,用户注册后他必须登录,他的第一页确认他的数据并插入一些新的,其中一个新的是他可以上传的图片,正如我所说,我最初的问题是$_FILES 总是空的,我在网上搜索,这是一个相当常见的错误,但没有一个答案对我有帮助,经过大量尝试,我发现了问题所在,但我仍然不知道为什么,或者如何要解决这个问题。
在我谈到的页面的开头,这里有一段代码:
if(isset($_SESSION['logado'])){
$dados = $_SESSION['dadosUsu'];
}else{
unset($_SESSION['dadosUsu']);
session_destroy();
header("Location: homeLandingPage.php");
}
阻止未经授权的人进入页面或使用用户数据创建一个变量,以便使用用户已经注册的信息填写一些输入。
我发现如果我从代码中删除了这一点,$_FILES 全局开始工作并且代码运行良好,但是如果代码在那里问题继续存在,我不知道为什么会发生这种情况,我在网上找不到任何东西谈论与 $_FILES 全局冲突的会话。
之后有一点ajax:
$(function(){
$('.form').submit(function(){
$.ajax({
url: 'cod_alterarAcc.php',
type: 'POST',
data: $('.form').serialize(),
success: function(data){
if(data != ''){
$('.recebeDados').html(data);
document.getElementById('visor1').value = '<?= $dados['nomeUsu']; ?>';
document.getElementById('visor2').value = '<?= $dados['emailUsu']; ?>';
document.getElementById('visor3').value = '<?= $dados['emailUsu']; ?>';
document.getElementById('visor4').value = '';
document.getElementById('visor5').value = '';
document.getElementById('visor6').value = '';
}
}
});
return false;
});
});
我不知道是不是这个,但这里是在输入类型文件上调用 onChange 的预览函数:
function previewImagem() {
var imagem = document.querySelector('input[name=img]').files[0];
var preview = document.querySelector('img[id=dup]');
var reader = new FileReader();
reader.onloadend = function () {
preview.src = reader.result;
}
if (imagem) {
reader.readAsDataURL(imagem);
} else {
preview.src = "";
}
}
潇潇雨雨