2016-09-14 91 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