选择图像并自动上传

时间:2017-03-11 20:10:31

标签: php jquery

我想点击一个按钮,从本地光盘打开文件浏览器,然后自动将所选文件上传到远程服务器。

<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

任何帮助?

1 个答案:

答案 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');
      }
  }); 
});

希望这会有所帮助