我想点击一个按钮,从本地光盘打开文件浏览器,然后自动将所选文件上传到远程服务器。
<input hidden type="file" id="loader" accept="image/*">
js
$('#m1new').click(function(){
$('#loader').click();
});
$('#loader').change(function(){
var img = this.files[0];
$.ajax({
url: 'upload.php',
type: 'post',
data: {'img': img},
success: function() {
console.log('ok');
}
});
});
upload.php (已更新)
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["img"]["name"]);
move_uploaded_file($_FILES["img"]["tmp_name"], $target_file);
控制台:
Uncaught TypeError: Illegal invocation
任何帮助?
答案 0 :(得分:1)
使用FormData
发送多部分请求,您应该将processData
选项设置为false
以防止自动处理
$('#loader').change(function(event){
var img = event.target.files[0];
var formData = new FormData();
formData.append('img', img);
$.ajax({
url: 'upload.php',
processData: false,
type: 'post',
data: formData,
success: function() {
console.log('ok');
}
});
});
希望这会有所帮助