[PHP] php异步上传文件

原理:
借用隐藏的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"]的内置属性,分别表示原文件名和在服务器上的临时地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 众所周知,文件上传在一些网站应用中是必不可少的一部分。比如个人博客上传个性头像,一些论坛分享好的学习资料等,这就涉...
    liuboxx1阅读 674评论 0 0
  • 一、表单简介 GET所有表单输入的数据被加载到请求的URL地址后面;如:test.php?username=fre...
    XZ阳光小熊阅读 1,053评论 0 1
  • 昏暗的办公室里,只有丝许阳光透过半开的百叶窗的缝隙流入房间,这是保密局长办公室。 保密局,这个国家最具势力...
    favourlove阅读 330评论 0 1
  • 摸着胸口, 感受心的跳动。 它如同火焰在翻滚。 它在跳动,它在咆哮, 它的声音 ,太小太小。 我们会恐惧,而心会带...
    古泽平雨阅读 292评论 1 0