2012-02-09 30 views
6

Mục đích là tải xuống tệp đã bị bán phá giá backup.sql sau khi chạy tập lệnh bán phá giá sql (từ PHP). Thông thường, tập tin .sql bị bán phá giá được xuất ra (được ghi) trên máy chủ. Sau đó, khi tôi tạo liên kết href tới tệp đó như <a href="backup.sql">Download File</a>, tệp sẽ mở trong trình duyệt khi nhấp vào, thay vì tải xuống.Làm cách nào để tạo liên kết có thể tải xuống tệp văn bản?

  • tôi chỉ muốn thực hiện một đơn giản HREF LINK (vào một tập tin văn bản như vậy) mà xuất hiện với "Save as .." hộp thoại trên đơn giản Left Nhấn.

Làm cách nào để thực hiện?

Trả lời

3

Thêm các dòng sau vào tệp .htaccess của bạn.

<Files "backup.sql"> 
ForceType applicaton/octet-stream 
Header set Content-Disposition attachment 
</Files> 
+0

Rob tuyệt vời này. Cảm ơn cho các trick;) Nó hoạt động độc đáo cho tôi, nhưng nếu có thể, tôi có thể có nó với hộp thoại 'Save as..'? –

+0

Bạn sẽ nhận được hộp thoại 'Lưu dưới dạng ...' bằng cách sử dụng các quy tắc này. (Nếu bạn gặp lỗi Máy chủ Nội bộ, có thể bạn chưa tải mô-đun tiêu đề). –

+0

Không có Rob. Tệp này hiện được lưu chỉ bằng một cú nhấp chuột SINGLE vào thư mục tải xuống trình duyệt mặc định. Nhưng, rộng rãi tôi chỉ muốn trình duyệt yêu cầu một hộp thoại để lưu (giống như khi chúng tôi lưu liên kết với Nhấp chuột phải -> Lưu dưới dạng). Nhưng, chỉ cần hỏi về kiến ​​thức. Điều này không thực sự cần tôi biết. –

3

Một lựa chọn khác đang phục vụ nó với trong một file .php như download.php

có điều này trong download.php

$path = "backup.sql" 
    header("Content-Type: application/octet-stream"); // 

    header("Content-Length: " . filesize($path));  

    header('Content-Disposition: attachment; filename='.$path); 

    readfile($path); 

sau đó

<a href="download.php">Download File</a> 
+0

Vì vậy, kịch bản tuyệt vời, vikki. Cảm ơn cho nó;) Nó hoạt động độc đáo cho tôi, nhưng nếu có thể, tôi có thể có nó với hộp thoại 'Save as..'? –

17

Hoặc bạn có thể chỉ cần sử dụng thuộc tính HTML5 mới download trong thẻ liên kết của html của bạn.

Mã sẽ giống như thế

<a download href="path/to/the/download/file"> Clicking on this link will force download the file</a> 

Nó hoạt động trên firefox và chrome phiên bản mới nhất. Tôi có nên đề cập đến rằng tôi đã không kiểm tra nó trong IE? : P

+2

hoạt động trên IE6 tôi vừa xác minh ...: P –

+0

Với các điều kiện tương tự như đã đề cập ở trên: cấu hình của trình duyệt của người dùng vẫn có thể nhắc người dùng chọn giữa xem và lưu. Khi tác giả của html BIẾT tệp này là nhị phân và gây ra consternation nếu được xem, không có cách nào để tác giả html chỉ cho phép tùy chọn "Lưu"? Dường như câu hỏi của OP vẫn chưa được trả lời. Có một số hậu tố tệp (ví dụ: .exe) hoạt động khác nhau không? – bootchk

+0

Tuyệt vời đơn giản.! –

Các vấn đề liên quan