Как загрузить файлы с помощью функции jQuery ajax с PHP? - PullRequest
0 голосов
/ 11 марта 2011

Вот моя неработающая попытка:

<script>
    function uploadImageSubmit() {

        var imageFile = $('.imageFile').val();

        $.ajax({

            url: 'ajax.php?request=upload-image&file='+imageFile,
            success: function(output) {
                 alert(output);                    
            }

        });

    }
</script>

<h2>Upload File</h2>

<form>
    <input type="file" class="imageFile" />
    <a onClick="uploadImageSubmit()">Upload</a>
</form>

Код на «ajax.php»:

<?php

$action = $_GET['request'];

switch($action) {

    case 'upload-image':

        $imageFile =  $_GET['file'];

        $name = $_FILES[$imageFile] ['name'];
        $tmpLocation = $_FILES[$imageFile] ['tmp_name'];

            $upload = move_uploaded_file($tmpLocation, "files/$name");
            echo ($upload) ? $name.' uploaded successfully!' : 'File not uploaded.';

    end;

}

?>

Я получаю файл сообщения не загружен.Я думаю, это потому, что хотя строки могут быть переданы через URL, пути к файлам по какой-то причине не могут.Но опять же, я понятия не имею, почему это не работает.Может кто-нибудь разобраться в чем дело, пожалуйста?

Ответы [ 3 ]

0 голосов
/ 11 марта 2011

Вы не можете загрузить файл, используя обычный JS / AJAX. Известный трюк состоит в том, чтобы опубликовать файл в скрытом iframe и обновить его.

0 голосов
/ 11 марта 2011

На самом деле, HTML5 и новый File API поддерживают загрузку через XmlHttpRequest.Прекрасно работает в Firefox 4 и Chrome.

0 голосов
/ 11 марта 2011

XmlHttpRequest не поддерживает загрузку файлов.вам нужно использовать скрытый iframe или flash-решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...