2015-01-23 4 views
0

Пользователи могут загружать документы и данные в мою форму, которая сохраняется в базе данных, и создается папка для хранения документов. Они могут загрузить .jpg .png .docx и т. Д., А не только изображения.Загрузите файл вместо открытия нового окна

Теперь я хочу отображать ссылки на эти документы, и когда вы нажимаете на ссылку, она дает возможность сохранить/открыть файл на вашем компьютере. Вместо этого, когда я нажимаю ссылку, она переходит на новую страницу и показывает изображение там. а потому, что они могут загружать документы Word PDF и т. д., вы не можете увидеть их в новом окне.

Метод im, использующий сейчас, не поддерживает IE, что существенно.

Код:

if(isset($_POST["submit"])){ 

     $ref = $_POST["reference"]; 
     $query = "SELECT * "; 
     $query .= "FROM customers "; 
     $query .= "WHERE reference = {$ref}"; 
     $results = mysqli_query($connection, $query); 

     // Array to hold all results: 
     $all = array(); 
     while ($customer_details = mysqli_fetch_assoc($results)) { 
      // Append a new sub-array of the 3 other cols to 
      // the main array's key by reference using the [] 
      // array append syntax 
      $all[$customer_details['reference']][] = array(
       'doc1' => $customer_details['doc1'], 
       'doc2' => $customer_details['doc2'], 
       'doc3' => $customer_details['doc3'] 
      ); 
     } 

     foreach ($all as $reference => $rows) { 
      // Write out the reference, which was the array key 
      echo $reference . "<br/>"; 
      // Then in a loop, write out the others 
      foreach ($all as $reference => $rows) { 
      // Write out the reference, which was the array key 
      echo $reference . "<br/>"; 
      // Then in a loop, write out the others 
      foreach ($rows as $row) { 
       echo "<a href='docs/1111111/1/" . $row['doc1'] . "' download='" . $row['doc1'] . "' >file1</a><br/>"; 
       echo "<a href='docs/1111111/1/" . $row['doc2'] . "' download='" . $row['doc2'] . "' >file2</a><br/>"; 
       echo "<a href='docs/1111111/1/" . $row['doc3'] . "' download='" . $row['doc3'] . "' >file3</a><br/>"; 
      } 

     } 
    } 

Как я могу обойти это?

ответ

0

Вам нужно всего лишь добавить строки кода в файл .htaccess на сервере. Вы можете изменить тип файла в зависимости от расширения (например, док.)

<FilesMatch "\.(?i:pdf)$"> 
    ForceType application/octet-stream 
    Header set Content-Disposition attachment 
</FilesMatch> 

Здесь есть 3 варианта, из которых это один является третьим: http://www.tipsandtricks-hq.com/forum/topic/force-a-file-to-download-instead-of-showing-up-in-the-browser