我正在尝试上传以表格形式发送的文件。我正在尝试使用php,但是在html和php之间我使用JS和Jquery和ajax(因为我不想重新加载页面)。我在$
_FILES方面遇到麻烦。
在这里,我正在使用带有javascript操作(action =“ javascript:SendPresupMail();”)的表单(包含文件输入)。
在该JS函数中,我使用了一个小Jquery和ajax,在其中,有一个对php函数的调用。
问题是,在该php函数中,$ _ FILES为空,我需要上传以表格形式发送的文件。
这是代码:
HTML表单,调用JS:
JS函数,并使用AJAX和JQUERY调用PHP:
function sendPresupMail() {
$.ajax({
url: 'remote.php',
type: 'post',
data: {
'w': 'sendPresupMail',
'mail': document.getElementById('mail').value
},
success: function(data) {
if(data != "ok" && data != ""){alert(data);}
if(data == "ok"){alert("mail send.");}
}
});
}
最后,PHP代码:
private function sendPresupMail(){
$filename = ($_FILES['file_selected']['name']);
...
...
}
那里的代码无关紧要,问题在于$ filename没有收到任何东西,因为$
_FILES为空(我用var_dump对其进行了检查,并且为空)。因此我无法上传文件,该怎么办?
解决了
解决方法如下:实际上,这比我想象的要简单得多。首先,我创建一个iframe,因此现在所有表单,javascript,ajax等都在iframe中进行了处理。因此,页面似乎没有刷新,因为iframe正在这样做。无论如何,感谢大家的回答!