2011-04-13 61 views
1

這是pushan再次。我有一個應用代碼下載多個圖片後,通過複選框選擇它們。複選框的值屬性包含圖像.The圖像文件的完整路徑沒有下載這裏是代碼片段:多個圖片下載後選擇

if(isset($_POST['picdnld'])) { 
    $picarry=$_POST['supplier_picture']; 
    foreach($picarry as $pic) { 
     $handle = fopen($pic, "r"); 
     $filename1 = basename($pic); 
     $xt=pathinfo($pic, PATHINFO_EXTENSION); 

     $filename=$filename1; 
     echo $filename.'</br>'; 

     $outhandle=fopen('image'."/".$filename,"w"); 

     if($outhandle){ 
      echo 'directory found'.'</br>'; 
     } else { 
      echo "directory not found".'</br>'; 
     } 

     while (!feof($handle)) { 
      $buffer=fread($handle,4096); 
      fputs($outhandle,$buffer); 
     } 
    } 

    fclose($handle); 
    fclose($outhandle); 
} 

供應商的圖片是其帖子包含圖像的複選框的名稱links.I發現$outhandle每次都返回false。請幫我下載多個選定的圖像。

回答

0

只是讀取圖像文件,然後發送給瀏覽器 在發送到瀏覽器之前設置內容標頭 header ("Content-Type: image/jpeg")

+0

無法正常工作:他正在輸出多張照片。 – 2011-04-13 11:31:28

+0

肯定的是,他可以在一個請求中發送單張圖片,@pushan使用@Pekka描述的lib,然後在發送zip文件之前將頭部設置爲「applicaion/zip」。 – 2011-04-13 11:37:04

2

這是不可能的你顯示的方式。響應一般只能包含一個圖像資源。

這樣做的最常見方法是將所有圖像放入ZIP文件中,並提供下載。你可以使用ZipArchive類。鏈接的頁面包含一個小例子。