通过ftp服务器下载时无法重定向到正确的路径


cant redirect to the right path when download via ftp server

这里我有一个download.php问题。我正在尝试下载文件,但它没有重定向到我在ftp服务器上共享文件夹的正确路径。它总是重定向到我所有file.php所在的地址。

这是我的家download.php

<?php
include 'dbconfig';
include 'ftpconfig.php';
include 'aes.php';
session_start();
    if($_SESSION['user'] and ($_SESSION['nik'])){
    }
    else{ 
       header("location:index.php");
    }
$file = $_GET['id'];
$fileFtp = 'ftp://'.$ftp_user_name.':'.$ftp_user_pass.'@'.$ftp_server.'/'.$file;
$crypt = new aes_encryption();
$fileName = str_replace('.enc','',$fileFtp.$file);
$fileNamee = str_replace('.enc','',$file);
$dekrip = $crypt->decrypt_file($fileFtp.$file, $fileName);
if (!$dekrip) {
echo "Gagal";
}
else {
        echo '<script> window.location.href = '.$fileName,'; </script>';
echo "The file ".$fileNamee." downloaded sucessfully";
} 
?>

这是我的home.php上下载的代码

<td> <a href="download.php=<?php echo $row['file'] ?>" target="_blank">Download</a></td>

当我点击下载时,它会重定向到所有file.php存在的

http://localhost/aes/download.php81208-mklh.pdf.enc

不在ftp服务器上我在F:'ftp中设置的共享文件夹中。并且所有文件都在该文件夹中。

我该怎么解决?

=符号之前的链接中缺少?id

<a href="download.php?id=<?php echo $row['file'] ?>"...

另外,参见http://localhost/aes/download.php

将其更改为:

<a href="/aes/download.php?id=<?php echo $row['file'] ?>"...

<a href="http://localhost/aes/download.php?id=<?php echo $row['file'] ?>"...

这取决于文件在服务器上的位置(download.php)。

错误报告应设置为捕获和显示通知。

确保路径正确,并且数据库查询正确无误,因为$row['file']建议这样做。

注意:(编辑)

FTP和DB代码都需要在同一个文件中。将代码放在不同的文件中可能会丢失某个连接。

参考文献:

  • http://php.net/manual/en/function.error-reporting.php
  • http://php.net/manual/en/mysqli.error.php
  • http://php.net/manual/en/book.ftp.php(FTP)

并使用var_dump();print_r();以及您的HTML源代码作为调试工具。

还要确保while循环中的数据库查询不会过早结束。看到您的另一个问题,您正在使用mysql_

即:(注意末尾的分号)

while ($row = mysql_fetch_array($result)); // <<< that terminates it.
{
    $file = $row["file"];
}

我以前见过这种情况,这是一种洞察力。

如果在转储到客户端的任何HTML之前放置一个标头,则将使用PHP重定向(服务器端,因此可以发送标头):

header('Location: http://www.yoursite.com/file_location.php');

如果你想进行JavaScript重定向,你会使用类似的东西(客户端,这样页面就可以开始加载了):

<script type="text/javascript">
<!--
window.location = "http://www.yoursite.com/file_location.php"
//-->
</script>