2

$.ajax を使用して、ユーザーが入力ファイルでファイルを選択したときに非同期でファイルをアップロードしたいと考えています。しかし、呼び出しを受け取ったphpは未定義のインデックスを返します。jquery コードは次のとおりです。

$("#urlimatge").change(function(){
            var filename = $("#urlimatge").val();
            $.ajax({ 
                type: "POST",
                url: "utils/uploadtempimg.php",
                enctype: 'multipart/form-data',
                data: {'urlimatge' : filename },
                success: function(response){
                     alert(response);
                }
            }); 

        });

そして呼び出しをrecibeするphp:

$image =  new gestorimatges();
$target_path = $image->uploadTemp($_FILES['urlimatge']['name'],$_FILES['urlimatge']['tmp_name']);

ありがとう

4

3 に答える 3

3

$_FILE を AJAX から PHP に渡すことはできません。

プラグインの使用をお勧めします

それはあなたの人生をより簡単にします:)ここにも役立つビデオチュートリアルがあります

于 2012-04-21T16:33:42.493 に答える
2

そのためには、 uploadifyなどのツールを使用することをお勧めします。

于 2012-04-21T16:31:39.963 に答える
1

AJAX を使用してファイルをアップロードすることはできませんが、使用できるiframeため、現在のページを更新する必要はありません。

多くの人がプラグインに難色を示していますが、これは自分で簡単に行うことができ、AJAX リクエストのすべての機能を使用できます。

AJAX 関数を使用する代わりにiframeloadイベント ハンドラーがアタッチされている非表示にフォームを送信して、フォームが送信されたときに、実際にサーバーの応答 (iframe読み込まれた後の HTML) を含むコールバック関数を使用します。

例:

HTML --

<form action="..." method="post" encrypt="application/x-www-form-urlencoded" target="workFrame" >
    <input type="file" name="file" />
    <input type="submit" />
</form>
<iframe id="workFrame" src="about:blank" style="display:none;"></iframe>

JS --

$(function () {
    $('form').on('submit', function () {
        //check if the form submission is valid, if so just let it submit
        //otherwise you could call `return false;` to stop the submission
    });

    $('#workFrame').on('load', function () {

        //get the response from the server
        var response = $(this).contents().find('body').html();

        //you can now access the server response in the `response` variable
        //this is the same as the success callback for a jQuery AJAX request
    });
});
于 2012-04-21T16:36:13.537 に答える