Hướng dẫn how force download file from remote server php? - Làm thế nào buộc tải xuống tệp từ máy chủ từ xa php?

PHP

Ngày 9 tháng 12 năm 2020 Nhân viên biên tập một bình luậnEditorial Staff Leave a Comment

Thông thường, chúng tôi tải xuống các tệp được lưu trữ trong cùng một máy chủ bằng PHP, nhưng trong hướng dẫn này, chúng tôi sẽ chỉ ra cách tải xuống một tệp được lưu trữ trong máy chủ từ xa.

// File in remote host
$url = 'https://img.youtube.com/vi/HvCpSfkNrms/maxresdefault.jpg';

//download
header("Content-type: application/x-file-to-save"); 
header("Content-Disposition: attachment; filename=".basename($url));
ob_end_clean();
readfile($remoteURL);
exit;

Tương tác độc giả

Trang web này sử dụng Akismet để giảm spam. Tìm hiểu cách dữ liệu nhận xét của bạn được xử lý.

Hướng dẫn how force download file from remote server php? - Làm thế nào buộc tải xuống tệp từ máy chủ từ xa php?

Trong ứng dụng web, nói chung, tệp được tải xuống từ cùng một máy chủ. Nhưng đôi khi tập tin cần được tải xuống từ máy chủ từ xa. Để tải xuống tệp với PHP, bạn cần buộc trình duyệt tải xuống tệp. & NBSP; buộc tải xuống trong PHP & NBSP; giúp tải xuống tệp từ máy chủ và lưu vào ổ đĩa cục bộ.

Trong đoạn mã ví dụ, chúng tôi sẽ chỉ cho bạn cách buộc tải xuống tệp từ URL trong PHP. Bạn có thể tải xuống bất kỳ loại tệp nào (hình ảnh, zip, video, âm thanh, v.v.) từ máy chủ từ xa bằng PHP.

Sử dụng & nbsp; readfile () & nbsp; function với & nbsp; ________ 9 & nbsp; loại nội dung & nbsp; tiêu đề, để tải xuống tệp zip từ URL từ xa bằng PHP.readfile() function with application/x-file-to-save Content-type header, to download a ZIP file from remote URL using PHP.

// Remote download URL
$remoteURL = 'https://www.example.com/files/project.zip';

// Force download
header("Content-type: application/x-file-to-save"); 
header("Content-Disposition: attachment; filename=".basename($remoteURL));
ob_end_clean();
readfile($remoteURL);
exit;

Lưu ý rằng: chức năng & nbsp; ob_end_clean () & nbsp; sẽ giúp tải xuống một tệp lớn từ máy chủ từ xa trong PHP.ob_end_clean() function will help to download a large file from the remote server in PHP.

Cố gắng tải xuống một tệp trên một máy chủ từ xa và lưu nó vào một thư mục con cục bộ.

Mã sau đây dường như hoạt động cho các tệp nhỏ, <1MB, nhưng các tệp lớn hơn chỉ cần hết thời gian và thậm chí không bắt đầu tải xuống.

<?php

 $source = "http://someurl.com/afile.zip";
 $destination = "/asubfolder/afile.zip";

 $data = file_get_contents($source);
 $file = fopen($destination, "w+");
 fputs($file, $data);
 fclose($file);

?>

Bất kỳ đề xuất về cách tải xuống các tệp lớn hơn mà không bị gián đoạn?

Hướng dẫn how force download file from remote server php? - Làm thế nào buộc tải xuống tệp từ máy chủ từ xa php?

Animuson ♦

52.8K28 Huy hiệu vàng139 Huy hiệu bạc145 Huy hiệu đồng28 gold badges139 silver badges145 bronze badges

Hỏi ngày 21 tháng 12 năm 2010 lúc 21:44Dec 21, 2010 at 21:44

Hướng dẫn how force download file from remote server php? - Làm thế nào buộc tải xuống tệp từ máy chủ từ xa php?

1

$ch = curl_init();
$source = "http://someurl.com/afile.zip";
curl_setopt($ch, CURLOPT_URL, $source);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec ($ch);
curl_close ($ch);

$destination = "/asubfolder/afile.zip";
$file = fopen($destination, "w+");
fputs($file, $data);
fclose($file);

Đã trả lời ngày 21 tháng 12 năm 2010 lúc 21:47Dec 21, 2010 at 21:47

Hướng dẫn how force download file from remote server php? - Làm thế nào buộc tải xuống tệp từ máy chủ từ xa php?

Parris Varneyparris VarneyParris Varney

11.1K12 Huy hiệu vàng45 Huy hiệu bạc75 Huy hiệu đồng12 gold badges45 silver badges75 bronze badges

6

// Remote download URL
$remoteURL = 'https://www.example.com/files/project.zip';

// Force download
header("Content-type: application/x-file-to-save"); 
header("Content-Disposition: attachment; filename=".basename($remoteURL));
ob_end_clean();
readfile($remoteURL);
exit;
0 không nên được sử dụng cho các tệp nhị phân lớn vì bạn có thể dễ dàng nhấn giới hạn bộ nhớ của PHP. Tôi sẽ
// Remote download URL
$remoteURL = 'https://www.example.com/files/project.zip';

// Force download
header("Content-type: application/x-file-to-save"); 
header("Content-Disposition: attachment; filename=".basename($remoteURL));
ob_end_clean();
readfile($remoteURL);
exit;
1
// Remote download URL
$remoteURL = 'https://www.example.com/files/project.zip';

// Force download
header("Content-type: application/x-file-to-save"); 
header("Content-Disposition: attachment; filename=".basename($remoteURL));
ob_end_clean();
readfile($remoteURL);
exit;
2 bằng cách nói với nó URL và tên tệp đầu ra mong muốn:

exec("wget $url -O $filename");

Đã trả lời ngày 21 tháng 12 năm 2010 lúc 21:50Dec 21, 2010 at 21:50

2

Kể từ Php 5.1.0, File_put_contents () hỗ trợ viết từng mảnh bằng cách chuyển giao hàng trực tuyến dưới dạng tham số $ Data:

file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));

Đã trả lời ngày 9 tháng 6 năm 2016 lúc 12:29Jun 9, 2016 at 12:29

KuldeepkuldeepKuldeep

2023 Huy hiệu bạc8 Huy hiệu Đồng3 silver badges8 bronze badges

1

Tôi luôn sử dụng mã này, nó hoạt động rất tốt.

<?php
define('BUFSIZ', 4095);
$url = 'Type The URL Of The File';
$rfile = fopen($url, 'r');
$lfile = fopen(basename($url), 'w');
while(!feof($rfile))
fwrite($lfile, fread($rfile, BUFSIZ), BUFSIZ);
fclose($rfile);
fclose($lfile);
?>     

Đã trả lời ngày 28 tháng 11 năm 2014 lúc 6:00Nov 28, 2014 at 6:00

HbirjandhbirjandHbirjand

1.90719 Huy hiệu bạc25 Huy hiệu đồng19 silver badges25 bronze badges

1

Sử dụng giải pháp này nếu bạn không biết định dạng của tệp mà bạn sẽ tải xuống.

$url = 'http:://www.sth.com/some_name.format' ;
$parse_url = parse_url($url) ;
$path_info = pathinfo($parse_url['path']) ;
$file_extension = $path_info['extension'] ;
$save_path = 'any/local/path/' ;
$file_name = 'name' . "." . $file_extension ;
file_put_contents($save_path . $file_name , fopen($url, 'r'))

Đã trả lời ngày 12 tháng 2 năm 2016 lúc 15:06Feb 12, 2016 at 15:06

SalarsalarSalar

5.1295 Huy hiệu vàng44 Huy hiệu bạc71 Huy hiệu đồng5 gold badges44 silver badges71 bronze badges

Đã trả lời ngày 10 tháng 7 năm 2015 lúc 20:27Jul 10, 2015 at 20:27

Một tập lệnh tốt hơn và nhẹ hơn là phát trực tuyến tệp:

<?php

$url  = 'http://example.com/file.zip'; //Source absolute URL
$path = 'file.zip'; //Patch & file name to save in destination (currently beside of PHP script file)

$fp = fopen($path, 'w');

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);

$data = curl_exec($ch);

curl_close($ch);
fclose($fp);

?>

Đã trả lời ngày 10 tháng 1 năm 2018 lúc 15:31Jan 10, 2018 at 15:31

Hướng dẫn how force download file from remote server php? - Làm thế nào buộc tải xuống tệp từ máy chủ từ xa php?

1

Làm cách nào để tải xuống một tệp từ một máy chủ khác?

Để chuyển một tệp từ một máy chủ từ xa qua SSH bằng SSP, chúng tôi cần các phần thông tin sau:..
Thông tin đăng nhập - Tên người dùng, tên máy chủ hoặc địa chỉ IP và mật khẩu ..
Số cổng cho các kết nối SSH ..
Đường dẫn đến tệp trên máy chủ từ xa ..
Đường dẫn đến vị trí tải xuống ..

Làm thế nào để tải xuống tệp từ máy chủ sang máy cục bộ trong PHP?

2 câu trả lời..
Tạo một tệp từ nó và chuyển hướng người dùng đến tệp bằng cách sử dụng tiêu đề ('vị trí: /path/to/file.txt') ;.
Chèn tiêu đề sau: Tiêu đề ('Xác định nội dung: Đính kèm; fileName = path/to/file.txt') ;.

Làm cách nào để đặt PHP để tải xuống một thư mục cụ thể?

Các bước để tải xuống tệp:..
Khởi tạo URL tệp vào biến ..
Tạo phiên Curl ..
Khai báo một biến và lưu trữ tên thư mục trong đó tệp đã tải xuống sẽ lưu ..
Sử dụng hàm basename () để trả về tên tệp basename nếu đường dẫn tệp được cung cấp dưới dạng tham số ..
Lưu tệp vào vị trí đã cho ..

Làm cách nào để tự động tải xuống các tệp từ máy chủ?

Chuyển đến Tệp >> Hồ sơ kết nối mới.Trên hộp thoại Tạo cấu hình kết nối, chọn tùy chọn hồ sơ tự động.Trên trang tiếp theo, cung cấp các chi tiết cần thiết để kết nối với máy chủ FTP.Trên trang Quy tắc hành động, chọn tùy chọn Tải xuống các tệp từ máy chủ FTP của bạn.