美文网首页PHP
[PHP] php异步上传文件

[PHP] php异步上传文件

作者: 何幻 | 来源:发表于2016-03-03 07:12 被阅读392次

原理:
借用隐藏的iframe来实现异步上传

1. 客户端

//1.php
<!doctype html>
<div>
    <iframe name=targetIframe></iframe>
    <form 
        id=uploadForm
        method=post 
        action=2.php 
        enctype=multipart/form-data 
        target=targetIframe>
            <input type=file name=file />
    </form>
    
    <input id=upload type=button value=upload />
    <script>
        document.querySelector('#upload').onclick=function(){
            document.querySelector('#uploadForm').submit();
        };
    </script>
</div>

注意:
(1)form.method=post
(2)form.enctype=multipart/form-data
(3)form.target=iframe.name
这里是借用了一个iframe来显示form.action页面,
即表单提交后iframe.src= form.action
如果不设置的话,会在当前页面显示form.action

2. 服务器端

//2.php
<?php
    $fileName=$_FILES["file"]["name"];
    $originFilePath=$_FILES["file"]["tmp_name"];
    $targetFilePath="uploadfiles/".time().$fileName;
    
    $result=move_uploaded_file($originFilePath,$targetFilePath);
    
    echo $result?"Success":"Failed";
?>

注意:
(1)文件首先上传到服务器的临时地址,然后使用move_uploaded_file拷贝到目标地址
(2)$_FILES["file"]中的file,是表单元素<input type=file name=file />name属性值
(3)$_FILES["file"]["name"];$_FILES["file"]["tmp_name"];中的nametmp_name
$_FILES["file"]的内置属性,分别表示原文件名和在服务器上的临时地址。

相关文章

网友评论

    本文标题:[PHP] php异步上传文件

    本文链接:https://www.haomeiwen.com/subject/svpnkttx.html