简体   繁体   English

PHP-使用Ajax上传文件

[英]Php - upload file with ajax

my 2form.php : 我的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>

if run code with out javascript , it 2form.php like simple php page, and 如果运行没有javascript的代码,则2form.php就像简单的php页面一样,并且

we can see information of $_FILES that was printed to scrreen 我们可以看到打印到屏幕上的$ _FILES信息

But if i have run with javascript by test() function , 但是,如果我通过test()函数使用javascript运行,

i don't get information in $_FILES ? 我没有在$ _FILES中获取信息?

How to get $_FILES ? 如何获得$ _FILES? when click button run with javascript ? 当单击按钮使用javascript运行时?

i want to upload with ajax 我想用ajax上传

You can't do file uploads using AJAX because you won't have access to the local file. 您无法使用AJAX上传文件,因为您无权访问本地文件。

The most common workaround is what the JQuery Form plugin does, creating a temporary iframe and doing a normal form submit into it. 最常见的解决方法是JQuery Form插件执行的操作,创建一个临时iframe并进行常规表单提交。

The other alternative is using a Flash-based uploader like SWFUpload or Uploadify . 另一种选择是使用基于Flash的上传器,例如SWFUploadUploadify

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM