我有例如三个文件服务器,并希望为filedownloads添加“Transparency-Layer”(一个执行的脚本,获取文件并将其直接发送给用户)。
用户应该只使用一个链接来访问文件,例如:
www.mysite.com/download/<UUID_WITH_correctFileServer>
我现在要问的问题是:
答案 0 :(得分:1)
哦,男孩......会尝试......只有示例中的第一个文件才能正常工作? (真实服务器中的真实文件)。
如果你不关心导航,你可以做类似的事情:
<强> test.php的强>
<?php
if(isset($_GET['fname']) and $_GET['fname']){
// do something with filename to decide from where to donwload
if($_GET['fname']=="DWSM_Domain.png") header("Location: ftp://anonymous:test@mailinator.com@ftp.swfwmd.state.fl.us/pub/CFWI_HAT/DWSM_Domain.png");
if($_GET['fname']=="file1") header("Location: ftp://someuser:somepassword@ftp.swfwmd.state.fl.us/somepath/file1");
if($_GET['fname']=="file2") header("Location: ftp://someuser:somepassword@ftp.swfwmd.state.fl.us/somepath/file2");
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p><a href="/test.php?fname=DWSM_Domain.png">DWSM_Domain.png</a></p>
<p><a href="/test.php?fname=file1">file1</a></p>
<p><a href="/test.php?fname=file2">file2</a></p>
</body>
如果您确实希望用户打开另一个窗口,则需要两个php文件。
<强> test1.php 强>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="/js/jquery.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p><label onclick="get_file('DWSM_Domain.png')">DWSM_Domain.png</label></p>
<p><label onclick="get_file('file1')">file1</label></p>
<p><label onclick="get_file('file2')">file2</label></p>
<script>
function get_file(thisfile) {
if(thisfile){
var content;
var page = "/test2.php?fname=";
var address = page.concat(thisfile);
$.get(address, function (data) {
content = data;
var newWindow = window.open("","_blank");
newWindow.location.href = content;
});
}
}
</script>
</body>
<强> test2.php 强>
<?php
if(isset($_GET['fname']) and $_GET['fname']){
// do something with filename to decide from where to donwload
if($_GET['fname']=="DWSM_Domain.png") $targetfile ="ftp://anonymous:test@mailinator.com@ftp.swfwmd.state.fl.us/pub/CFWI_HAT/DWSM_Domain.png";
if($_GET['fname']=="file1") $targetfile ="ftp://someuser:somepassword@ftp.swfwmd.state.fl.us/somepath/file1";
if($_GET['fname']=="file2") $targetfile ="ftp://someuser:somepassword@ftp.swfwmd.state.fl.us/somepath/file2";
echo $targetfile;
}
?>
你肯定需要驯服它以获得你的确切行为,但我希望这是一个良好的开端。 公平的风
答案 1 :(得分:-1)
是的,这是可能的,但这取决于您在其上托管脚本的服务器的性能,以及用户的性能。互联网连接