2014-08-29 105 views
2

我想在用戶上傳到服務器之前向用戶顯示一個圖像,以確保該圖像是用戶想要上傳的圖像。是否可以在上傳之前顯示tmp文件夾中的圖像?

我試圖用$_FILES['name']['tmp_name']做到這一點,並把它放在標籤中,但沒有任何反應。

<form action='' method='POST' enctype="multipart/form-data"> 
     <header class='pageHeading'>Kop afbeedling toevoegen</header>    
     <section class='body'>    
      <div class='inputFrame'> 


       <img src="<?php if(isset($_FILES['image']['tmp_name'])){echo $_FILES['image']['name'];}?>"/> 

         <div class='input'> 
          <div class="cellFrame"> 
           <div class="inputHeading">Afbeelding uploaden</div> 
           <div class="frame"> 
            <div class="frameAlign"> 
             <div class="displayFlie"> 
              <input type='file' name='image'/> 
             </div> 
             <button name='upload' class='btnUpload btn'>Upload</button> 
             <div class="clr"></div> 
            </div> 
           </div> 
          </div> 
         </div> 



       <div class="clr"></div> 
      </div> 
     </form> 
+0

顯示你的代碼,只需需要像你說的那樣顯示文件格式tmp,所以你的代碼必須有錯誤 – Sal00m 2014-08-29 09:01:53

+0

tmp_name(整個$ _FILES)在上傳之後,而不是之前。 – 2014-08-29 09:04:51

+0

檢查http://khantmontu.blogspot.in/2012/08/display-image-preview-before-it-upload.html和http://stackoverflow.com/questions/16207575/how-to-preview-a- image-before-and-after-upload – Jenz 2014-08-29 09:05:29

回答

0

您是否嘗試過直接從/ tmp文件夾讀取文件?當然,這隻能在上傳之後發生,而不是之前。所以你必須在將文件移動到它的destined文件夾之前做這件事,但是在上傳之後。

readfile($_FILES["name"]["tmp_name"]); 
+0

$ _FILES [「name」] [「tmp_name」]已經有完整的路徑,在它之前添加了另一個/ tmp /不會顯示任何東西,臨時目錄是基於配置 – alez007 2014-08-29 09:06:23

+0

你是對的,我的錯。 – JoelP 2014-08-29 09:07:30

+0

好的謝謝,所以基本上你總是要先上傳。 – phpFreak 2014-08-29 09:11:30

1

提交圖像後,它已經上傳到服務器的臨時文件中。如果您需要顯示該臨時文件中的圖像內容,則需要執行一個腳本來讀取該文件並使用正確的標題輸出該文件。這裏有一個例子:

header('Content-Type: image/x-png'); 
readfile($_FILES['name']['tmp_name']); 
exit(); 
2

簡單的解決方案 - 抓住你的圖像數據轉換爲Base64和輸出在當前視圖,這樣你就不會需要將當前TMP圖像複製到一個公用loction-像

$imageData = file_get_contents($_FILES['image']['tmp_name']); // path to file like /var/tmp/... 

// display in view 
echo sprintf('<img src="data:image/png;base64,%s" />', base64_encode($imageData)); 
相關問題