4日間位PHPでアップローダを書いていて、公開しながらデバックしていたんですが、一番収穫が多かったと思われるreadfileについての書き方をメモしておこうと。
[tmkm-amazon]4839933146[/tmkm-amazon]
4日間位PHPでアップローダを書いていて、公開しながらデバックしていたんですが、一番収穫が多かったと思われるreadfileについての書き方をメモしておこうと。
[tmkm-amazon]4839933146[/tmkm-amazon]
[Fri Oct 15 05:47:06 2010] [error] [client 192.168.0.2] PHP Warning: Smarty error: unable to read resource: "tmpl/download.tpl" in /usr/lib64/php/Smarty/libs/Smarty.class.php on line 1093, referer: http://ほげ/show.php?datno=1286294784
とりあえずSilverlightを覚えるよりも知ってるやつでつくろうってことでSmarty使って2chブラウザ作ってるんですが、
なぜかこのdownload.tplだけ読み込めない。
ちなみにソースは
download.php
<?php require_once("config.php"); require_once"Archive/Zip.php"; require_once"Smarty.class.php"; require_once($path['lib'].$escstr."2ch_function.php"); require_once($path['lib'].$escstr."zip.lib.php"); $zipFile = new zipfile(); $datno = $_GET['datno']; $path['cmp'] = $path['work']."/src/".$datno."/img/"; $path['zip'] = $path['work']."/src/".$datno."/".$datno.".zip"; $path['zipurl'] = "./src/".$datno."/".$datno.".zip"; $path['str'] = $datno; chdir($path['cmp']); $filelist = fFileListLoad($path['cmp']); $filelist = str_replace($path['cmp'], '', $filelist); $p_params = array('add_path' => $path['str']); $objZip = new Archive_Zip($path['zip']); $fileName = $filelist; $text = $objZip->create($fileName,$p_params); $smarty = new Smarty(); $smarty -> assign('zippath', $path['zipurl']); $smarty -> assign('datno', $datno); $smarty -> display($dirpath['templ'].'/download.tpl'); ?>download.tpl
<?xml version="1.0" encoding="UTF-8"?> <!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" xml:lang="ja" lang="ja"> <head> <title>2ch画像</title> <meta name="keywords" content="2ch画像" /> <meta name="description" content="2ch画像収集してZIPで" /> <link rel="stylesheet" href="./lib/main.css" type="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <script src="./lib/jquery.js" type="text/javascript"></script> <script src="./lib/main.js" type="text/javascript"></script> </head> <body> <div id="header_all"> <div id="header"> <p><a href="index.html"><img src="img/logo.png" alt="画像収集" /></a></p> <h1>画像収集</h1> </div> <div id="contents"> <div id="menu"> <ul> <li><a href="./">TOP</a></li> <li><a href="index.html">DAT落一覧</a></li> <li><a href="index.html">TEST</a></li> <li><a href="index.html">TEST</a></li> <li><a href="index.html">TEST</a></li> </ul> </div> <div id="main_img"> <div id="main"> <div id="right"> <p>操作メニュー</p> <div id="sidemenu"> <ul> <li><a href="./subject.php">VIPスレ一覧へ</a></li> <li><a href="./download.php?datno={$datno}">このスレの画像をZIPでDL</a></li> </ul> </div> <p><img src="img/banner.png" alt="此処には代替テキストを挿入してください。" /></p> <p><img src="img/banner.png" alt="此処には代替テキストを挿入してください。" /></p> </div> <div id="left"> <h2>取得済み一覧</h2> <dl> <dt>レス数:{$datan.resno}</dt> <dd></dd> </dl> <div id="product"> <h3>ZIPファイルダウンロード:{$datno}.zip</h3> <p><a herf="{$zippath}"><img src="./img/zip.php" border="0" /></a></p> </div> </div> </div> </div> <div id="footer"> <p>Copyright© <a href="http://template-compassion.info/">COMPASSION</a> 2010 All Rights Reserved.</p> </div> </div> </body> </html>
こんな感じ。
圧縮部分のfFileListLoadにはそのまま「がじゃぱ!ブログ」さんの「Archive_Zipを使って、ディレクトリごと圧縮するPHP」を使ってます。
こういう細かくはわからないエラーってすごい手がつけにくい・・・。
しかもindexや他でSmartyを使ったら普通に使えてるので定義した関数が原因なのかなーとは思うんですが、ワケが分からない・・・
画像用のアップローダを作ってみたので公開しました。
http://menta.orz.hm/upimg/all/
1度に20ファイル、1ファイルにつき20MBまで、JPG,PNG,GIFがアップロードできます。
サーバ機のCPUのCel 440にちょっと限界を感じてきたのでAMDのPhenomII X4にしようということでFOXCONNのA85GMを購入。
FOXCONN:http://www.foxconnchannel.com/product/motherboards/detail_overview.aspx?id=en-us0000468
Links:http://www.links.co.jp/items/foxconn-amd/a85gm.html
安いM/BなのにBroadcomのNICを積んでるのが決め手。
購入時に大きな画像を見たかったんですが、なかなか見つからなかったのでこれから買う方に参考になるかもしれない画像をうpしておこうかなと。
ということで以下画像。
FOXCONN AMD 785G チップ搭載 A85GM
Foxconn |
yumでffmpeg持ってくるのが楽な気がしてきましたが、意味の無い意地でソースからインストールするバージョン
yum版は作るか不明。
使い方はv2.1などと同様。
ただ、実行する前に
apacheuser=apache apachegrp=apache
この部分の=apacheを
=実行ユーザ
=ユーザのグループ
に変更してください。
前提はインストール後の初期状態
今回の変更:
このファイルを実行した後、
yumで取ってきたhttpdの設定には
を行ってください。
その後、mysqlでデータベース・ユーザを作って
にアクセスしてください。
apacheのユーザ・グループが合っていれば実行できるはずです。
*32bitの場合はそのまま実行できるかと思われます。
改変・再配布とかご自由に。
画像専用でアップローダ作ってたんですが、最近削除依頼が多いため、
自分の鯖の公開はどうかなぁと思ったのでとりあえずソースを公開。
DL:uploader_v0
セキュリティは考えてません。
設置時にはconfig.phpを編集してください。
設置時のパーミッション
./uploader/ - src/ [0777] - thumb/ [0777] - log/ [0777] - html.dat [666] - upload.log [666] - config.php [644] - index.php [644] - upload.php [644]
PHP5とPHP_gdが使えるLinuxでの状況しか考えてません。
ログファイルは別の名前に変更したほうがいいかと思われます。
一応うpのフォームは無制限で増やせますが名前のキレイさ的に99個までにしたほうがいいかと思われます。