我們很多時候會在一些網站上,比如寫在線簡歷的時候,會發現我們的圖片選擇一下,就會立即顯示在當前頁面。我們常常以為這種東西只有ajax才能實現,今天我稍微學習了一下,發現這種東西並不是ajax實現的。
最終還是用我們的基本知識HTML 中的FORM 來實現上傳的。好的,現在我就把我知道的寫出來,作為學習之用,當然這只是我自己的學習筆記,如果有錯的地方,希望同道者給以指點一二。
首先我們明確一點,上傳圖片,我們還是用<from ….enctype=”multipart/form-data”>這種情況。
但是如何可以作到不刷新就把上傳的圖片顯示出來呢?這裡我們需要對<iframe></iframe>進行一個了解。
用過這個標簽的朋友都知道,它可以將你的頁面分成幾個部分,且每個部分可以有自己的url,即顯示幾個不同的頁面。說到這裡或許有些朋友已經知道了這個是怎麼一回事了。沒錯,上傳圖片就是利用的這個原理。看起來像是在同一個頁面,沒有跳轉,然後事實上已經跳轉了,只是我們沒有看到而以。好的,下面是一個簡單的例子,希望對大家都所幫助。(php+html)
首先是index.php頁面,代碼簡單如下:
代碼如下 復制代碼<form id=”content” action=”hello.php” method=”post” target=”yframe” enctype=”multipart/form-data”>
<input type=”file” name=”tValue”>
<input type=”submit” value=”submit”>
<iframe name=”yframe” src=”hello.php” style=”border:none;”></iframe>
</form>
<input type=”text”>
然後是hello.php頁面,也就是圖片上傳的頁面
代碼如下 復制代碼<?php
//echo $_FILES["tValue"]["tmp_name"];
if(move_uploaded_file($_FILES["tValue"]["tmp_name"], “img/a.jpg”))
{
echo “<img src=’img/a.jpg’ width=’250px’height=’130px’>”;
}
?>
可以說已經完成了,這幾行代碼就可以將我們所需要的效果實現。
下面來一個分析:
首先在form裡面有一個target,且它的值是位於它裡面的一個iframe.意思是,我們提交後,頁面會在這個iframe裡面顯示出來,
從iframe的定義來看,它的內容就是hello.php。所以我們的表單提交後即直接到了這個iframe裡面,所以頁面不會跳轉,但我們完成了上
傳,在從hello.php來看,上傳後它會選擇將圖片顯示出來,由前面可以知道hello.php的內容會顯示到iframe裡面,所以最後我們看到的效果就是頁面沒有跳轉,我們可以做出一個類似ajax實現的效果,上傳圖片後可以在當前將其顯示出來。