我一直在使用这个网站寻找答案,但我找不到任何可能有帮助,所以我决定创建一个帐户并问自己。
以下是我正在处理http://www.h-elpsystems.co.uk/index.php网站的链接。它是一个数据库驱动的网站,允许用户下载文件。现在我正在网站的一个页面上工作(据我所知,我没有触及任何使用下载代码的代码),现在突然下载不起作用。
下载位于底部的“雇佣法律页面”。当您单击链接下载文件时,它只会将用户发送到同一页面,但最后只能在URL中使用#。
我不确定要上传哪些代码(我是php的新手),但如果有人让我知道哪些是必需的,我会上传它。
感谢您提前提供任何帮助。
PS这是我用于下载的代码。 (注意我没有创建代码,我只编辑了一两页,因为某些原因,下载似乎停止了工作。)
<?
// Define the path to file
$file = "membersfiles/".$_GET['ID'];
if(!file)
{
// File doesn't exist, output error
die('file not found');
}
else
{
// Set headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
// Read the file from disk
readfile($file);
}
?>
<!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>Download file</title>
</head>
<body>
</body>
</html>
以下是就业页面的代码。 (对不起,我是这个论坛的新手,所以我真的不知道该问题包含哪些内容)
<?
session_start;
include("../Functions.inc");
$ID=PageID(substr(dirname($_SERVER['PHP_SELF']), 1, strlen(dirname($_SERVER['PHP_SELF']))));
?>
<!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=iso-8859-1" />
<title><? echo PageTitle($ID);?></title>
<meta name="keywords" content="<? echo PageKeywords($ID);?>" />
<meta name="description" content="<? echo PageDescription($ID);?>" />
<meta name="robots" content="index,follow" />
<link href="../mainstyles.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id="wrapper">
<div id="leftcolumn"><div id="mainnav"><img src="../media/logo.gif" alt="H-elp Systems" /><? include("../Left-Links.inc"); ?>
<a href="mailto:info@h-elpsystems.com" id="emailbutton" ><span>click here to email us</span></a>
<img src="../media/navfooter.gif" alt="Help Systems" /></div>
</div>
<div id="centercolumn">
<div id="topnav">
<? include("../Top-Links.inc"); ?>
</div>
<div id="content">
<img src="../media/headers/<? echo PageTitle($ID);?>.jpg" alt="" />
<img src="../media/splashtext/<? echo PageTitle($ID);?>.gif" alt="When it come to employment you need h-elp systems" /><a href="#" id="phonelink" ><span>0121 635 5870</span></a>
<img src="../media/hr450.gif" alt="Help Systems" />
<div id="contentcopy">
<h1><? echo PageSplash($ID);?></h1>
<? echo PageContent($ID);?>
<?
$query = "SELECT * FROM `Files` WHERE `Employment`=1";
$result = mysql_query($query) or die ("Failed To get member files!");
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print("<img src=\"../media/hr450.gif\"/><br><a href=\"#\" onclick=\"javascript:downloadwindow('../Download.php?ID=".$line['URL']."');\">".$line['URL']."</a>");
}
?>
</div>
<img src="../media/hr450.gif" alt="Help Systems" />
<div id="footer">
<p>RJS Management Services Ltd Concorde House Trinity Park Solihull B37 7UQ<br />
Tel.+44 (0)121 635 870 Email. <a href="mailto:action@h-elpsystems.com">action@h-elpsystems.com</a></p>
</div>
</div>
</div>
<div id="rightcolumn">
<?
$query = "SELECT * FROM `News` ORDER BY `Date` DESC limit 0, 4";
$result = mysql_query($query) or die ("Failed To get latest news!");
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$ShortContent=substr($line['Content'],0,175);
print("<h2>".$line['Title']."</h2>".$ShortContent."...<p class=\"small\">".$line['Date']."</p><a href=\"../News.php?Article=".$line['ID']."\" class=\"clickformore\" ><span>click here for more</span></a><img src=\"../media/hr.gif\" alt=\"H-elp\" />");
}
?>
</div>
</div>
</body>
</html>
<?
//Close any open connetions
mysql_close;
?>
编辑:我已经尝试了每个人的答案,他们似乎以某种形式工作但由于某种原因,当我将更改的代码上传到服务器时,似乎在我点击就业法律页面时会显示一个空白页面。现在我不知道我是将它保存错误还是上传错误或是否有其他错误。
答案 0 :(得分:1)
查看受影响链接上的来源:
<a href="#" onclick="javascript:downloadwindow('../Download.php?ID=Adoption Leave_Employee Guidelines_Nov 2012.pdf');">Adoption Leave_Employee Guidelines_Nov 2012.pdf</a>
您正在使用Javascript打开下载窗口,但我在Firefox中的Javascript控制台告诉我:
Error: ReferenceError: downloadwindow is not defined
您忘记为该系统上传丢失的Javascript(.js)文件或将其包含错误。
另外,当我尝试通过直接在Download.php打开URL下载?ID = .... pdf会导致存档文件损坏,但这是另一种情况我想。
答案 1 :(得分:1)
从@mastazi开始并添加一个iframe并将href定位到那个,这样你就可以留在页面上了:
<a href="download.php?pdf=..." target="downloadFrame">
<a href="...
<iframe style="display:none;" name="downloadFrame"></iframe>
答案 2 :(得分:0)
要做的第一件事是添加生成下载链接的就业页面中的代码。这将使我们了解下载来自网站的位置。
现在看起来问题是下载链接本身;所有链接只是指向带有主题标签的就业页面,但在主题标签后没有变量。因此,除非表单应该提交onclick数据(这种情况不太可能),否则下载URL不正确。
因此,请从显示下载链接的就业页面添加代码,我们可以从那里开始。
问题肯定是就业页面上的链接。我怀疑所包含的文件已被移动或修改。
检查include("../Functions.inc");
是否仍然在相对于就业页面的路径中(即就业页面中的一个文件夹)。
在我看来,如果不是问题,接下来要做的就是修改代码。没有必要使用单独的JavaScript代码在新窗口中打开下载。
所以在就业页面上更改此行:
print("<img src=\"../media/hr450.gif\"/><br><a href=\"#\" onclick=\"javascript:downloadwindow('../Download.php?ID=".$line['URL']."');\">".$line['URL']."</a>");
对此:
print("<img src=\"../media/hr450.gif\"/><br><a href=\"../Download.php?ID=".$line['URL']."\" target=\"_blank\">".$line['URL']."</a>");
我希望这会有所帮助。
答案 3 :(得分:0)
您正在调用未包含在文档中的Javascript函数,因此显然无效。但是,传递给函数的值之一是文件的url(它是带有GET参数的PHP)并且它是正确的。 如果您不确切知道如何操作,请对每个链接执行以下操作:
而不是
<a href="#" onclick="javascript:downloadwindow('../Download.php?ID=Adoption Leave_Employee Guidelines_Nov 2012.pdf');">Adoption Leave_Employee Guidelines_Nov 2012.pdf</a>
试试这个:
<a href="../Download.php?ID=Adoption Leave_Employee Guidelines_Nov 2012.pdf">Adoption Leave_Employee Guidelines_Nov 2012.pdf</a>
即,从onclick语句中获取URL并将其放入href中。首先尝试仅修改第一个链接并测试它是否有效,然后对每个链接执行相同的过程。它需要一段时间,但它应该工作。