Php 更改文件输入时上载文件
我试图在文件输入发生变化时上传一个文件,但我无法让它工作,因为我不太擅长javascript 我在谷歌上搜索了一下,发现: 我使用它,并试图改变它,以我想如何使用它。但是我得到了错误Php 更改文件输入时上载文件,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我试图在文件输入发生变化时上传一个文件,但我无法让它工作,因为我不太擅长javascript 我在谷歌上搜索了一下,发现: 我使用它,并试图改变它,以我想如何使用它。但是我得到了错误 `Uncaught TypeError: Illegal invocation` 这是我的职责: function uploadFile(formData){ $.ajax({ url: 'inc/ajax/uploadFile.php', //Server script to proc
`Uncaught TypeError: Illegal invocation`
这是我的职责:
function uploadFile(formData){
$.ajax({
url: 'inc/ajax/uploadFile.php', //Server script to process data
type: 'POST',
data: {'formData':formData},
//Ajax events
success: function(html){
alert(html);
}
});
}
我这样调用函数:
$("input:file").change(function(){
var file = this.files[0];
uploadFile(file);
})
和uploadFile.php
<?php
$formData = $_GET['formData'];
echo $formData;
?>
我只是测试并尝试用php返回文件,看看是否可以让它工作。但是我不知道如何用PHP调用它,或者用AJAX发送它。一旦我可以用PHP检索$u文件,我就知道如何用PHP上传它。您需要将数据作为对象发送
除了另一个答案之外,将其添加到ajax中
contentType: false,
processData: false
比如:
您还应该考虑那些可能没有更新浏览器的人,只需输入一条小错误消息,如:
if(window.FormData === undefined){
alert('sorry buddy, your browser\'s too old!');
return;
}
$\u在客户端和服务器上获取$\u POST?
$\u获取['formData']
应该为空,因为您正在发送POST请求…注意,像这样上传文件在iSorry中不起作用,我将其改为POST。但是我应该像我一样给formData打电话吗?谢谢凯文B我会记住这一点的。非常感谢这很有意义。但我还是犯了同样的错误。。错误来自于“data:formData”行,谢谢,这修复了错误。但我必须如何在PHP中调用它$_POST['formData']不起作用。@Xegano,这取决于您对表单元素的命名。执行var\u转储($\u POST)代码>和var\u转储($\u文件)代码>-这将显示正在发送到服务器的数据。谢谢!我不得不调用“$\u FILES['formData']”,它返回了数组。
var formData = new FormData();
formData.append('formData', file);
$.ajax({
url: 'inc/ajax/uploadFile.php', //Server script to process data
type: 'POST',
data: formData,
contentType: false,
processData: false,
//Ajax events
success: function(html){
alert(html);
}
});
if(window.FormData === undefined){
alert('sorry buddy, your browser\'s too old!');
return;
}