4

ファイル入力の変更時にファイルをアップロードしようとしていますが、javascript が苦手なため動作しません。

Google で検索したところ、これが見つかりました:ファイルを非同期的にアップロードするにはどうすればよいですか?

使ってみて、自分の使いたいように変えてみました。しかし、私はエラーが発生しています

`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でアップロードする方法を知っています。

4

2 に答える 2

2

データをFormDataオブジェクトとして送信する必要があります

function uploadFile(file){
    var formData = new FormData();
    formData.append('formData', file);
    $.ajax({
        url: 'inc/ajax/uploadFile.php',  //Server script to process data
        type: 'POST',
        data: formData,
        //Ajax events
        success: function(html){
            alert(html);
        }
    });
}

http://blog.new-bamboo.co.uk/2012/01/10/ridiculously-simple-ajax-uploads-with-formdata

于 2013-08-22T16:22:28.753 に答える