back
iPhoneでファイル閲覧 ソート ソートを降順にしたいというコメントに応えて、ソート切り替えを追加してみました。
4行目のとこで好きな方に設定して下さいな。

サンプル(パスワードは「password」) [link]
一式ファイル [link]

<?PHP
$dir
= "./data";    // データフォルダ ここに閲覧したいファイルを入れておく
$pw
= "password";    // パスワード 書き換えて使用して下さい
$srt
= 0;    // ソート(0:昇順 1:降順)

// postデータをcookie保存
if ($_POST["upw"]) {
    setcookie
("fileslogin",crypt($_POST["upw"], "fl"),time()+(60*60*24*90));
    header
("Location: index.php");
}
   
// cookieチェック
$login
= (crypt($pw, "fl") == $_COOKIE["fileslogin"]);

if ($login) {
   
// ファイルリスト画面表示
    $ul
= "<ul id="home" title="Files" selected="true">\n";    // home UL
   
// アイコン画像
    $iconimg
= array('doc' => 'doc.png', 'docx' => 'docx.png', 'htm' => 'html.png', 'html' => 'html.png', 'key' => 'key.png', 'numbers' => 'numbers.png', 'pages' => 'pages.png', 'pdf' => 'pdf.png', 'ppt' => 'ppt.png', 'pptx' => 'pptx.png', 'txt' => 'txt.png', 'vcf' => 'vcf.png', 'xls' => 'xls.png', 'xlsx' => 'xlsx.png', 'm4v' => 'mov.png', 'mp4' => 'mov.png', 'mov' => 'mov.png', 'aac' => 'audio.png', 'mp3' => 'audio.png', 'aif' => 'audio.png', 'aiff' => 'audio.png', 'wav' => 'audio.png', 'm4a' => 'audio.png', 'm4b' => 'audio.png', 'm4p' => 'audio.png', 'jpg' => 'img.png', 'jpeg' => 'img.png', 'gif' => 'img.png', 'png' => 'img.png', 'tif' => 'img.png', 'tiff' => 'img.png', 'ai' => 'ai.png', 'psd' => 'psd.png');
    $files
= array();
    $cnt
= 0;
    $files
[] = read_directory($dir, $ul);
    $files
= array_reverse($files);
    $data
= implode($files, "\n");
} else {
   
// ログイン画面表示
    $data
= "<ul id="home" title="Files" selected="true">\n";
    $data
.= "<li><form method="post" action="index.php">PASSWORD: <input type="password" name="upw" value="" /><input type="submit" value="Submit"></form></li>\n";
    $data
.= "</ul>\n";
}

$html
= <<<EOM
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<style type="text/css" media="screen">@import "./iui/iui.css";</style>
<style type="text/css">
.icon {
    margin
-right: 5px;
}
p
{
    display
: table-cell;  
    vertical
-align: middle;  
    margin
: 0;
}
form
{
    margin
-right: 10px;
}
input
{
    padding
: 4px;
}
</style>
<script type="application/x-javascript" src="./iui/iui.js"></script>
<head>
<title>Files</title>
<meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
</head>
<body>
<div class="toolbar">
   
<h1 id="pageTitle"></h1>
   
<a id="backButton" class="button" href="#"></a>
</div>

$data
</body>
</html>
EOM;

echo $html;
exit;

function read_directory($dir, $ul) {
    global $iconimg, $files, $cnt, $srt;
    $list = $ul;
    if ($handle = opendir($dir)) {
        while ($item_array[] = readdir($handle));
        closedir($handle);
        if ($srt) {
            rsort($item_array);
            reset($item_array);
        } else {
            sort($item_array);
            reset($item_array);
        }
        while ($item = each($item_array)) {
            if ($item[1] != "" &amp;&amp; $item[1] != "." &amp;&amp; $item[1] != ".." &amp;&amp; $item[1] != ".DS_Store") {
                if (is_dir("$dir/{$item[1]}")) {
                    $cnt += 1;
                    $list .= "
<li><a href="#n{$cnt}"><p><img src="./img/folder.png" class="icon"></p><p>{$item[1]}</p></a></li>\n";
                    $files[] = read_directory("$dir/{$item[1]}", "
<ul id="n{$cnt}" title="{$item[1]}">\n");
                } else {
                    $img_path = "./img/genericdoc.png";
                    $item_name = explode('.', $item[1]);
                    if ($item_name[1]) {
                        if ($iconimg[strtolower($item_name[1])]) {
                            $img_path = "./img/{$iconimg[strtolower($item_name[1])]}";
                        }
                    }
                    $list .= "
<li><a href="$dir/{$item[1]}" target="_self"><p><img src="$img_path" class="icon"></p><p>{$item[1]}</p></a></li>\n";
                }
            }
        }
        $list .= "
</ul>\n";
    }
    return $list;
}
?>


以前、Mac Fanで紹介してもらったときに、keynote、numbers、pagesがフォルダになってしまう問題が、zipで固めてしまえば、
Safariでクリック→zipダウンロード→解凍、展開→表示
という流れで表示できることがわかったのですが、じゃあzipで自動で固める処理を追加しようとすると、execとかで簡単にやりたいところですが、そうすると動かない人もでてくるかなと。。。
なので、その辺は自由に書き換えて使って下さいな。
this page url :
comments

うわぁっ!即効でありがとうございます。
これでイメージどおりのサーバが出来上がりました。
私の環境(ANHTTPD+PHP5)では文字コードがUTF-8では文字化けしたためSHIF-JISにしたら解決しました。

それにしても、素敵な写真がたくさんありますね。私もオリンパスのデジ一使いなんですが、子供の写真ばっかりで足元にも及びません。。
今後もがんばって素敵な作品を見せて頂ければ幸いです。 これすごく便利ですね!
ありがとうございます。
name*: 猫画像を3つ選択して下さい
mail:
web:
※メールアドレスは一般に公開されません。
非公開コメント