我正在尝试在文件输入更改时上传文件,但我无法让它工作,因为我不太擅长 javascript。
我确实在谷歌上搜索并找到了这个:How can I upload files asynchronously?
我使用了它并尝试将其更改为我想要的使用方式。但是我收到了错误
`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 中检索 $_FILES,我就知道如何使用 PHP 上传它。
最佳答案
除了其他答案,将此添加到您的 ajax
contentType: false,
processData: false
喜欢:
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;
}
关于php - 在文件输入更改时上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18385924/