Php - 使用ajax上传文件

时间:2010-09-13 09:02:27

标签: php ajax

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页面,和

我们可以看到打印到scrreen的$ _FILES信息

但如果我通过test()函数运行javascript,

我在$ _FILES中没有获得信息?

如何获得$ _FILES?点击按钮运行javascript?

我想上传ajax

1 个答案:

答案 0 :(得分:2)

您无法使用AJAX进行文件上传,因为您无权访问本地文件。

最常见的解决方法是JQuery Form plugin执行的操作,创建临时iframe并将正常表单提交到其中。

另一种选择是使用基于Flash的上传器,例如SWFUploadUploadify