10/10/2018, 09:27
Ẩn link download bằng Header? F1 !!
Để ẩn link download file đc attach trên host em viết hàm dlfile trong download.php như vầy:
Em có 2 thắc mắc:
1.Hàm trên chỉ có thể download đc các file nằm trong các sub folder của folder chứa file php download.php, em có một file bất kì nằm trên host thì phải cho cái filename= gì?
2.Nếu muốn ẩn link download từ trang khác thì sao ví dụ chỉ cần đưa url của file thì nó sẽ download, em có thử như vầy như ko xi nhê
Cảm ơn các bro nhiều!
Code:
function dlfile($file) { header("Content-Disposition: attachment; filename=filename.zip"); exit(); }
1.Hàm trên chỉ có thể download đc các file nằm trong các sub folder của folder chứa file php download.php, em có một file bất kì nằm trên host thì phải cho cái filename= gì?
2.Nếu muốn ẩn link download từ trang khác thì sao ví dụ chỉ cần đưa url của file thì nó sẽ download, em có thử như vầy như ko xi nhê
Code:
function dlfile($url) { header("Content-Disposition: attachment; filename=$url"); exit(); }
Bài liên quan
{
header("Content-Disposition: attachment; filename=filename.zip");
exit();
}
cũng k xi nhê gì đâu, tóm đc link hết
function dlfile($file)
{
readfile("filename.zip");
exit();
}
và
function dlfile($file)
{
readfile($url);
exit();
}
chỉ còn cách trẻ con này thôi
Giả sửa cái file download của em ở: webdir/File/filename1.zip
Nếu dùng header thì cho filename = gì ?
Thanks! Em chỉ muốn giấu cơ bản đối với user bình thường thôi thôi còn pro thì ko tính
Ai biết giúp em với, dùng hàm nào đây! chỉ cần có tính năng tương tự như header không vì header ko download theo url được chỉ download theo tên file nhưng nhập đúng file name khó quá!
Thanks!
$file_url="webdir/File/filename1.zip
";
@header('Content-type: application/octetstream');
@header("Pragma: public");
@header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
@header('Content-Disposition: attachment; filename="123.ZIP"');
ob_end_clean ();
ob_start();
readfile ($file_url);
$size=ob_get_length();
header("Content-Length: $size");
ob_end_flush();
Trình duyệt sẽ trả về cho bạn File với tên 123.zip
Còn một vấn đề nữa là với cách trên có thể download một file bên ngoài server ko, nghĩa là ko chứa trên host của mình.
Cảm ơn bạn rất nhiều !!!
google for everything!
Bằng cách này bạn có thể load các file ở ngoài host của bạn
thay hàm này, ví dụ:
$file_url="http://vietstylex.net/filename1.zip";
chỉ thế thôi. hàm readfile hơi bất tiện vì là nó chậm và ví dụ như file kia nặng 50MB thì host của bạn khi dùng hàm này khi load file này về cũng bị mất 50MB băng thông. vì nó load toàn bộ file này qua host bạn rồi mới trả về khi download
Mình bị lỗi như vầy nếu mình include 1 file php nào phía trước các hàm header thì nó đều báo lỗi là :Cannot modify header information - headers already sent by (...) Nên mình cứ gom toàn bộ vô 1 file. Có cách nào sửa lỗi này ko.
Cho mình hỏi thêm là @header có khác gì header ko?
Cảm ơn các bạn nhiều !!
Thanks!