[PHP] php異步上傳文件

原理:
借用隱藏的iframe來實(shí)現(xiàn)異步上傳

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
這里是借用了一個(gè)iframe來顯示form.action頁(yè)面,
即表單提交后iframe.src= form.action
如果不設(shè)置的話,會(huì)在當(dāng)前頁(yè)面顯示form.action。

2. 服務(wù)器端

//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)文件首先上傳到服務(wù)器的臨時(shí)地址,然后使用move_uploaded_file拷貝到目標(biāo)地址
(2)$_FILES["file"]中的file,是表單元素<input type=file name=file />name屬性值
(3)$_FILES["file"]["name"];$_FILES["file"]["tmp_name"];中的nametmp_name
$_FILES["file"]的內(nèi)置屬性,分別表示原文件名和在服務(wù)器上的臨時(shí)地址。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 眾所周知,文件上傳在一些網(wǎng)站應(yīng)用中是必不可少的一部分。比如個(gè)人博客上傳個(gè)性頭像,一些論壇分享好的學(xué)習(xí)資料等,這就涉...
    liuboxx1閱讀 718評(píng)論 0 0
  • 一、表單簡(jiǎn)介 GET所有表單輸入的數(shù)據(jù)被加載到請(qǐng)求的URL地址后面;如:test.php?username=fre...
    XZ陽(yáng)光小熊閱讀 1,106評(píng)論 0 1
  • 昏暗的辦公室里,只有絲許陽(yáng)光透過半開的百葉窗的縫隙流入房間,這是保密局長(zhǎng)辦公室。 保密局,這個(gè)國(guó)家最具勢(shì)力...
    favourlove閱讀 372評(píng)論 0 1
  • 摸著胸口, 感受心的跳動(dòng)。 它如同火焰在翻滾。 它在跳動(dòng),它在咆哮, 它的聲音 ,太小太小。 我們會(huì)恐懼,而心會(huì)帶...
    古澤平雨閱讀 363評(píng)論 1 0

友情鏈接更多精彩內(nèi)容