2016-09-14 87 views
-4

我想知道,我怎麼能在PHP中創建一個下載頁面,下載文件,而不陶醉的下載鏈接到文件,源文件和下載頁面放在網頁中如何使用post php方法創建下載頁面?

<form>...</form>

標籤..

像:

<form action="example.com/download.php" method="post" target="_blank"> 
<input name="id" type="hidden" value="#"> 
<input name="filename" type="hidden" value="#"> 
<input name="filesize" type="hidden" value="#"><p></p><div 
align="center"> > > <input type="image"> </div> </form> 

拉斯維加斯科技投入是下載按鈕圖像的src ...

任何機構可以幫助我,這整個過程是如何工作的,並放什麼/download.php頁面的源代碼....又如何使形式爲我的網頁...

其實我已經看到了這一切的網站,誰在做同樣的事情上..

請幫助。在此先感謝...

+0

好吧,我要修改我的問題 – Duryab

+0

含義,在您的下載頁面您需要的文件從瀏覽器下載?而不顯示文件在哪裏給用戶? – masterFly

+0

是的,但下載請求通過表單html標籤從網頁提交到下載頁面 – Duryab

回答

0

你想創建一個通用的下載助手,在那裏你可以得到某種獨特的ID和這個幫手返回正確的文件到最終用戶沒有透露該文件的真實路徑。

有很多方法來解決這個問題,它也取決於你想要達到的目的,以及有多少文件將提供下載(這將影響到簡單或實施的複雜性)

對於一個例子:

如果你有一個下載網站,它將服務於成千上萬的文件 - 你會想要實現一個方法能夠很好地處理N個文件,這可能會變得複雜(當然取決於你的要求)。

在另一方面 - 如果你只打算在服務器5-10文件,您可以創建一個非常簡單的輔助,將完成這項工作。

一個簡單的輔助的簡單例子:

的download.php

<?php 
    $fileId = $_GET['fileId']; 
    switch($fileId){ 
     case 1: 
      $fileName = 'myFile.pdf'; 
      break; 
     case 2: 
      $fileName = 'myOtherFile.doc'; 
      break; 
     default: 
     $fileName = null; 
    } 
    if($fileName){ 
     // $fileName is your file identifier 
     $fileFullPath = $_SERVER['DOCUMENT_ROOT'].'mySecretFolder/files/'.$fileName; 

     if (file_exists($fileFullPath)) { 
      header('Content-Description: File Transfer'); 
      header('Content-Type: application/octet-stream'); 
      header('Content-Disposition: attachment; filename='.basename($fileFullPath)); 
      header('Content-Transfer-Encoding: binary'); 
      header('Expires: 0'); 
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
      header('Pragma: public'); 
      header('Content-Length: ' . filesize($fileFullPath)); 
      ob_clean(); 
      flush(); 
      readfile($fileFullPath); 
      exit; 
     } 
    } 
?> 

HTML

<a href="https://www.my-domain.com/download.php?fileId=1"> Download PDF </a> 

這只是一個簡單的例子,如果你需要使用提供少量文件並希望做出簡單,快速的實施。

如果你要服務器無限的文件或未知量,你將需要實現廣告投放系統的先進的文件(或使用現有的一個是開源的)。

希望它可以幫助一點

+0

嗨,感謝...對於這個很好的幫助......但是請再看看我的問題我對問題內容做了一些更改和細節... – Duryab

+0

我其實想要使用html中的表單來提交下載請求...不是頁面的URL ... – Duryab