从服务器php

时间:2015-12-13 21:07:36

标签: php

我为我的大学项目创建了一个脚本,它读取目录中的文件并通过foreach循环回显它们,它将其作为列表,所以

"<ul>";    //this ul is outside the foreach loop
    "<li><b>".$ftype.": ".$rows."</b>
        <ul>
            <li><a href='?run=delete.$dir$rows'>Delete ".$ftype."</a></li>
            <li><a href='?run=rename.$dir$rows'>Rename ".$ftype."</a></li>
            <li><a href='?run=download.$dir$rows'>Download ".$ftype."</a></li>
        </ul>
    </li>";
"</ul>";   //this ending ul tag is outside the foreach loop

$ rows是foreach循环中使用的变量

foreach($getDir as $rows)

$ ftype是一个变量集,具体取决于$ rows是否为dir

if (is_dir($dir.$rows){
    $ftype = "Folder";
} else {
    $ftype = "File";
}

这是我脚本的输出:

Folder: pics
    Delete Folder
    Rename Folder
    Download Folder
File: screenshot (4).png
    Delete File
    Rename File
    Download File
File: screenshot.png
    Delete File
    Rename File
    Download File
File: screenshot_(2).png
    Delete File
    Rename File
    Download File
File: screenshot_(3).png
    Delete File
    Rename File
    Download File
Folder: trip
    Delete Folder
    Rename Folder
    Download Folder

保持简短我需要另一个包含开关的php文件,该开关检测“run”是什么并对结果作出反应,因此当“run”设置为下载时,它使用设置为“run”的字符串。为了便于快速地解释这一点,我将举一个例子:

如果我点击“文件:截图.png”的“下载文件”,则运行设置为

?run = download.uploads / admin @ admin / screenshot.png所以

download.uploads/admin@admin.com/screenshot.png

我在另一个php文件上创建的开关检查if(substr($ linkchoice,0,8))==“download”所以如果run的第一个到第八个字符等于download,则执行header(“位置:$ linkchoice;内容类型:application / force-download“); break;

switch($linkchoice){
    case (substr($linkchoice, 0, 8)) == "download": 
        header("Location: $linkchoice; Content-type: application/force-download");
    break;//I have cases for the rename and delete but those aren't relevant to my problem

我的问题是,当我点击下载时,它会给我这个错误:

  

禁止访问!

     

您无权访问请求的对象。它受读保护或服务器无法读取。

     

如果您认为这是服务器错误,请与网站管理员联系。

     

错误403

     

本地主机   Apache / 2.4.17(Win32)OpenSSL / 1.0.2d PHP / 5.6.15

如果有人想看到代码问我将把它放在github上。

如果我的代码有误,请告诉我以及如何解决。

此外,我尝试使用其他一些下载代码,让我下载具有给定扩展名的文件,但是当我打开它们时,让我们说它在Windows照片查看器中打开它的图片,但是它说Windows照片查看器无法支持文件类型......

0 个答案:

没有答案