2010-12-27 40 views
7

là có thể tải tập tin lớn hơn 200 mb lên web hosting của tôi trực tiếp để tôi không phải tải tập tin đó về máy tính và sau đó tải lên bằng máy khách FTP của tôi. và vì tôi không sử dụng ssh tôi không thể sử dụng wget. tôi đã nghĩ đến việc php hoặc mỗi hoặc cgi có thể .. (dành cho tất cả những ý tưởng ..)Tải tập tin về máy chủ web từ trang khác bằng cách sử dụng php

+==============+         +--------+ 
| Big server | -----------+    +--->|web host| 
+==============+   | +------+  | +--------+ 
          +-->| MyPC |-----+  | 
           +------+    |  +========+ 
                 +---->| client | 
                  +========+ 

hoặc

+============+ 
| Big Server | ---+ 
+============+ |      +----------+ 
        +--------------------->| Web Host | 
             +----------+ 
              | 
    +------+         |  +========+ 
    | MyPC |         +----->| client | 
    +------+          +========+ 

plz giúp đỡ ....

+1

Những loại truy cập bạn có lên máy chủ web của bạn? Chỉ cần một bảng quản trị, truy cập shell? –

+0

những gì có sẵn trên máy chủ của bạn, những gì permissinos bạn có? – helle

+0

tôi không có quyền truy cập shell chỉ ftp; – voldyman

Trả lời

7

Đối với cURL

$url = "http://path.com/file.zip"; 
$fh = fopen(basename($url), "wb"); 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_FILE, $fh); 
curl_exec($ch); 
curl_close($ch); 
+0

curl làm việc một phần nhưng tệp được tạo là 0 lần cắn. .. – voldyman

+1

điều này cuối cùng đã làm việc như máy chủ của tôi đã đóng cửa lưu lượng truy cập ra trên cổng 80. không có lỗi trong mã ... – voldyman

1

Với PHP bạn có thể tải xuống tệp này:

<?php 
$in = fopen('http://example.com/', 'r'); 
$out = fopen('local-file', 'w'); 
while(!feof($in)) { 
    $piece = fread($in, 2048); 
    fwrite($out, $piece); 
} 
fclose($in); 
fclose($out); 
?> 

Điều này yêu cầu hai điều:

  • Các tập tin địa phương phải được ghi bởi máy chủ web
  • allow_url_fopen phải được kích hoạt trên máy chủ web
+1

sao chép() có thể dễ dàng hơn? –

+0

sửa đổi trang một chút (akx.x10.mx/akx/down.php) tôi có thể tải xuống tệp từ máy chủ của tôi, nhưng các máy chủ khác cung cấp lỗi sau "không thể mở luồng: Kết nối đã hết thời gian chờ trong/*** "chỉnh sửa: oh chỉ thấy allow_url_fopen bị tắt ....... (:( – voldyman

4

trong php dễ nhất có lẽ là:

<?php 
copy('http://server.com/big.file','/local/path/big.file'); 
?> 

tuy nhiên bạn nên có có thể thực thi wget. đặc biệt là nếu fopen bên ngoài không được kích hoạt trên máy chủ của bạn mà rất có khả năng

sử dụng php chỉ thích:

<?php 
chdir('/where/i/want/to/download/the/file/'); 
system('wget http://server.com/big.file'); 
?> 

hoặc

<?php 
system('wget -O /where/i/want/to/save http://server.com/big.file'); 
?> 

curl là một cách khác. bạn có thể thực thi lệnh shell hoặc sử dụng curl php.

cũng chắc chắn rằng thư mục (hoặc file) mà bạn muốn tải về là có khả năng ghi

+0

phương thức sao chép và hệ thống hiển thị lỗi 500 – voldyman

+0

trông giống như một hạn chế của máy chủ sau đó. –

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