Проблема загрузки файла через ajax с использованием PHP - PullRequest
2 голосов
/ 20 июля 2009

Прежде чем начать, обратите внимание, что мне нужно обновить сайт, который мне не принадлежит, поэтому я не могу переделать всю логику. Если бы я сделал это, я бы сделал это по-другому.

У меня есть приложение CakePHP с формой с множеством полей. В этой форме вы можете найти файл и сохранить его асинхронно. Вот как это делается:

<input type="file" name="data[FileUpload][file]" id="myFileToUpload">
<a id="pickFile" href="#">Upload&nbsp;Now</a>

<script type="text/javascript">
    $('#pickFile').click(function (e) {
        e.preventDefault();
        $.post(
            "/admin/FileUploads/saveFromFlash/<?php e($session->id()) ?>", {
            data: $("#myFileToUpload").val()
        }, function (data) {
            $("#returnedContentFromAjax").html(JSON.stringify(data));
        },
            "json");
    });
</script>

Функция, вызываемая в основном, делает это:

$this->FileUpload->save($this->data)

, но это всегда возвращает false и "Загрузка не пройдена". Вот строка, создающая сообщение об ошибке:

if (!isset($this->data['FileUpload']['file'])) {
        $this->setUploadError('No upload passed');
    return false;
}

Я понятия не имею, как отправить это "$ this-> data ['FileUpload'] ['file']" через ajax ... Я думаю, это ключевая проблема, так как я не знаю, какой объект передать здесь:

{ data:$("#myFileToUpload").val() },

Я был на нем весь вечер, любая помощь будет принята с благодарностью

Ответы [ 2 ]

3 голосов
/ 20 июля 2009

В итоге: javascript не может получить доступ к содержимому файла, выбранного для загрузки.

Эта статья посвящена получению «эффекта ajax» для загрузки файлов: Можно ли использовать Ajax для загрузки файлов?

0 голосов
/ 07 августа 2011

попробуйте загрузить, это система загрузки JQuery Ajax. Легко использовать. http://www.uploadify.com/

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