0
我編寫了上傳文件到我的主機的代碼。例如,我從服務器A上傳一個文件到服務器B,之後我想通過我的電腦下載,但是當我想通過IDM下載時,它不支持RESUME下載。恢復下載?直接鏈接?
注意:我將這段代碼上傳到服務器B!
<?php
require('config.php');
function is_valid_url($link)
{
$link = @parse_url($link);
if (! $link) {
return false;
}
$link = array_map('trim', $link);
$link['port'] = (!isset($link['port'])) ? 80 : (int)$link['port'];
$path = (isset($link['path'])) ? $link['path'] : '';
if ($path == '')
{
$path = '/';
}
$path .= (isset ($link['query'])) ? "?$link[query]" : '';
if (isset ($link['host']) AND $link['host'] != gethostbyname ($link['host']))
{
if (PHP_VERSION >= 5)
{
$headers = get_headers("$link[scheme]://$link[host]:$link[port]$path");
}
else
{
$fp = fsockopen($link['host'], $link['port'], $errno, $errstr, 30);
if (! $fp)
{
return false;
}
fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $link[host]\r\n\r\n");
$headers = fread ($fp, 128);
fclose ($fp);
}
$headers = (is_array ($headers)) ? implode ("\n", $headers) : $headers;
return (bool) preg_match ('#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers);
}
return false;
}
if (isset($_POST['pass']) && isset($_POST['user'])){
if ($_POST['pass'] == $pass && $_POST['user'] == $user){
if (!$pass | !$user | !$save | !$link){
include('./error.php');
}elseif(is_valid_url($link) && copy($link, $upload_folder.'/'.$save)){
include('./index.2.php');
}else{
include('./error.php');
}
}else{
include('./error.php');
}
}
?>
感謝您的幫助......
你試圖提供*下載*負載,或*上*負載恢復?它不完全清楚(HTTP不提供上傳簡歷,但它確實支持通過`範圍`請求頭部和`206部分內容`響應的方式下載恢復) – Piskvor 2011-02-11 20:51:13