| 記事No | : 14886 |
| 投稿日 | : 2016/06/02(Thu) 17:26:43 |
| タイトル | : Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : rick7634 |
| 投稿者 | : RICK |
| URL | : http://www.gamer-affiliate.com/cgi-bin/patio/patio.cgi |
ファイルアップロード掲示板には「JoyfulNote」がありますが、
個人的には「Web Patio」にファイル添付機能を付けたいと考えています。
過去ログには参考になりそうな情報があったものの、
古いもの用で最新版との互換性はなさそうでした。
様々な改造版はあるもののベースが古いもののため
最新版のものに適用したいと考えています。
どなたか助力をお願いします。
| 記事No | : 14887 |
| 投稿日 | : 2016/06/02(Thu) 19:20:27 |
| タイトル | : Re: Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : hirayama |
| 投稿者 | : hirayama |
| URL | : http://shade-search.com/sts/fsw/wiki.cgi |
Web Patioはファイル添付機能がついてるので、
その最新版をそのまま使えばいいのでは。
| 記事No | : 14888 |
| 投稿日 | : 2016/06/02(Thu) 20:13:25 |
| タイトル | : Re^2: Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : rick7634 |
| 投稿者 | : RICK |
| URL | : http://www.gamer-affiliate.com/cgi-bin/patio/patio.cgi |
>>hirayamaさん
あ、すみません。
zipファイルをアップロードできるように改造したいため
このスレを立てさせて頂きました。
説明不足申し訳ありませんでした。
| 記事No | : 14889 |
| 投稿日 | : 2016/06/03(Fri) 12:17:18 |
| タイトル | : Re^3: Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : hirayama |
| 投稿者 | : hirayama |
| URL | : http://shade-search.com/sts/fsw/wiki.cgi |
>zipファイルをアップロードできるように改造したいため
元々画像ファイルしかアップロードできないようになっているようですね。
zipファイルをアップロードできるようにするにはregist.cgiのsub upload内
if ($fname =~ /(\.jpe?g|\.png|\.gif)$/i) {
↓
if ($fname =~ /(\.jpe?g|\.png|\.gif|\.zip)$/i) {
整合性チェックの部分も
unless (($mime =~ /^image\/gif$/i and $ex eq '.gif') or ($mime =~ /^image\/p?jpe?g$/i and $ex eq '.jpg') or ($mime =~ /^image\/(x-)?png$/i and $ex eq '.png')) {
↓
unless (($mime =~ /^image\/gif$/i and $ex eq '.gif') or ($mime =~ /^image\/p?jpe?g$/i and $ex eq '.jpg') or ($mime =~ /^image\/(x-)?png$/i and $ex eq '.png') or ($mime =~ /^application\/(x-)?zip(-compressed)?$/i and $ex eq '.zip')) {
とzipファイルの処理を追加します。
これでアップロードできると思いますが、このままだと、アップロードしたzipファイルを画像として表示しようとして、
リンク切れ表示になるので、patio.cgiの sub image 内を以下のように変更します。
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="$cf{uplurl}/$pic" width="$w" height="$h" hspace="2"></a>|;
↓
if ($pic !~ /(\.gif|\.jpe?g|\.png)$/i) {
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="./icon/fld_bell.gif" width="$w" height="$h" hspace="2"></a>|;
} else {
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="$cf{uplurl}/$pic" width="$w" height="$h" hspace="2"></a>|;
}
アップロードしたファイルの拡張子が画像ファイルじゃなかったら、別のアイコン画像に変える処理です。
| 記事No | : 14893 |
| 投稿日 | : 2016/06/03(Fri) 16:49:06 |
| タイトル | : Re^4: Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : rick7634 |
| 投稿者 | : RICK |
| URL | : http://www.gamer-affiliate.com/cgi-bin/patio/patio.cgi |
>>hirayamaさん
貴重な情報ありがとうございます。
regist.cgiの「sub upload」
patio.cgiの「sub image」
の2つをいじればいいことは理解出来たものの、
上記の通り実践して見たものの上手くいきませんでした。
現在上記の2つの関数を「Joyful Note」から移植することを
考えましたが、なかなかうまくいきません。
多分変数の取り方がおかしいのだと思われます。
なにかアドバイスがあればお願いします。
| 記事No | : 14894 |
| 投稿日 | : 2016/06/03(Fri) 19:04:04 |
| タイトル | : Re^5: Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : hirayama |
| 投稿者 | : hirayama |
| URL | : http://shade-search.com/sts/fsw/wiki.cgi |
Joyful Noteは最初から画像以外のファイルをアップロードすることを想定されているので、
init.cgiでZIPファイルのアップロードを許可するだけで対応できますが、
Web Patioの場合は、元々画像ファイル以外のアップロードを受け付けないよう書かれています。
処理がかなり違うので、Joyful Noteからアップロード部分を移植するのは難しいと思います。
Web Patioの画像以外拒否する処理を、zipファイルだけは受け付けるようにしたのが上記の修正です。
>上記の通り実践して見たものの上手くいきませんでした。
具体的にどのようにうまくいかないのでしょうか。
| 記事No | : 14895 |
| 投稿日 | : 2016/06/03(Fri) 19:33:29 |
| タイトル | : Re^6: Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : rick7634 |
| 投稿者 | : RICK |
| URL | : http://www.gamer-affiliate.com/cgi-bin/patio/patio.cgi |
>具体的にどのようにうまくいかないのでしょうか。
��FTPで閲覧した所zipをアップロードしても
uplフォルダには何もありませんでした
�▲▲奪廛蹇璽匹気譴燭箸靴討眦塞佞離▲ぅ灰鵑�表示されませんでした。
| 記事No | : 14896 |
| 投稿日 | : 2016/06/03(Fri) 20:00:56 |
| タイトル | : Re^7: Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : hirayama |
| 投稿者 | : hirayama |
| URL | : http://shade-search.com/sts/fsw/wiki.cgi |
それでは、
unless (($mime =~ /^image\/gif$/i and $ex eq '.gif') or ($mime =~ /^image\/p?jpe?g$/i and $ex eq '.jpg') or ($mime =~ /^image\/(x-)?png$/i and $ex eq '.png') or ($mime =~ /^application\/(x-)?zip(-compressed)?$/i and $ex eq '.zip')) {
の部分を
unless (($mime =~ /^image\/gif$/i and $ex eq '.gif') or ($mime =~ /^image\/p?jpe?g$/i and $ex eq '.jpg') or ($mime =~ /^image\/(x-)?png$/i and $ex eq '.png') or $ex eq '.zip') {
に変更してzipファイルのMIMEチェックを省略してみるとどうでしょう?
| 記事No | : 14897 |
| 投稿日 | : 2016/06/04(Sat) 05:08:41 |
| タイトル | : Re^8: Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : rick7634 |
| 投稿者 | : RICK |
| URL | : http://www.gamer-affiliate.com/cgi-bin/patio/patio.cgi |
うまく動作させることが出来ました。
しかし、調べた所、「Forum Patio」の方が高機能で新しいことが発覚したため、そちらを使うことに致します。
お手数かけてすみませんでした。
| 記事No | : 14938 |
| 投稿日 | : 2016/06/29(Wed) 03:36:59 |
| タイトル | : Re^9: Web Patio 5.11にファイルアップロード機能を付け |
| ID情報 | : rick7634 |
| 投稿者 | : RICK |
| URL | : http://bbs.dojin-rpg-cheat.com/bbs/patio.cgi |
備忘録として
・ZIP(.zip)
・テキスト(.txt)
・Word(.doc/.docx)
・Excel(.xls/.xlsx)
・Power Point(.ppt/.pptx)[
・PDF(.pdf)
をアップロードできるようにした方法を書いておきます。
【regist.cgi】
<# ファイル名>
if ($fname =~ /(\.jpe?g|\.png|\.gif)$/i) {
↓
if ($fname =~ /(\.jpe?g|\.png|\.gif|\.zip|\.txt|\.xlsx?|\.docx?|\.pptx?|\.pdf)$/i) {
<# 整合性チェック>
unless (($mime =~ /^image\/gif$/i and $ex eq '.gif') or ($mime =~ /^image\/p?jpe?g$/i and $ex eq '.jpg') or ($mime =~ /^image\/(x-)?png$/i and $ex eq '.png')) {
↓
unless (($mime =~ /^image\/gif$/i and $ex eq '.gif') or ($mime =~ /^image\/p?jpe?g$/i and $ex eq '.jpg') or ($mime =~ /^image\/(x-)?png$/i and $ex eq '.png') or $ex eq '.zip' or $ex eq '.txt' or $ex eq '.xls' or $ex eq '.xlsx' or $ex eq '.doc' or $ex eq '.docx' or $ex eq '.ppt' or $ex eq '.pptx' or $ex eq '.pdf'){
【patio.cgi】
<sub image>
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="$cf{uplurl}/$pic" width="$w" height="$h" hspace="2"></a>|;
↓
if ($pic =~ /(\.zip)$/i) {
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="./icon/icon-zip.png" width="$w" height="$h" hspace="2"></a>|;
}elsif ($pic =~ /(\.txt)$/i) {
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="./icon/icon-txt.png" width="$w" height="$h" hspace="2"></a>|;
}elsif ($pic =~ /(\.xlsx?)$/i) {
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="./icon/icon-xls.png" width="$w" height="$h" hspace="2"></a>|;
}elsif ($pic =~ /(\.docx?)$/i) {
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="./icon/icon-doc.png" width="$w" height="$h" hspace="2"></a>|;
}elsif ($pic =~ /(\.pptx?)$/i) {
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="./icon/icon-ppt.png" width="$w" height="$h" hspace="2"></a>|;
}elsif ($pic =~ /(\.pdf)$/i) {
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="./icon/icon-pdf.png" width="$w" height="$h" hspace="2"></a>|;
}else {
$img .= qq|<a href="$cf{uplurl}/$fnam-$i$ex" target="_blank"><img src="$cf{uplurl}/$pic" width="$w" height="$h" hspace="2"></a>|;
}
各種画像は「Web Patio Plus」にあるものを使用しました。
ファイル名は適宜修正しています。
http://drc3.news-site.net/script1/patio.html