2014-08-29 68 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)); 
相关问题