Php - загрузить файл с помощью ajax - PullRequest
0 голосов
/ 13 сентября 2010

my 2form.php:

<script type="text/javascript" src="mootools.js"></script>
<script type="text/javascript">
    function test()
    {
        url = '2form.php';
        var ajax = new Ajax(url, {
            method: 'post',
            onComplete: function(response) {            
                document.getElementById('error_upload_logo').innerHTML = response;
            }
        });     
        ajax.request();
    }   
</script>
<?php
    if($_FILES)
    {
        echo "<div>";
        foreach($_FILES['name'] as $v)
        {
            echo $v."<br/>";
        }
        echo "</div>";
    }
    else
    { ?>
        <form action='' id='form1' name="form1" method="post" enctype="multipart/form-data">
            <input type="file" name="name"/>
            <input type="submit" name="submit" onclick='test(); return false;'/>
        </form>
<?php
    }
?>

<div id="error_upload_logo"></div>

если запустить код без JavaScript, он 2form.php похож на простую страницу php, и

мы можем увидеть информацию о $ _FILES, которая была напечатанана экран

Но если я запускаю javascript с помощью функции test (),

я не получаю информацию в $ _FILES?

Как получить $ _FILES?когда кнопка запускается с JavaScript?

Я хочу загрузить с AJAX

1 Ответ

2 голосов
/ 13 сентября 2010

Вы не можете загружать файлы с помощью AJAX, потому что у вас не будет доступа к локальному файлу.

Наиболее распространенный обходной путь - это то, что делает плагин JQuery Form , создавая временный фрейм и выполняя в нем обычную форму.

Другой альтернативой является использование загрузчика на основе Flash, например SWFUpload или Uploadify .

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