CGIなどのの質問を受付ます。
現在SPAM対策の為、一部ホストアドレスを規制中。
▼スレッド
│
└◇721:Re[4]:htmlファイル書出し時の画像表示 [tako] 11/13 02:51
├◇723:Re[5]:htmlファイル書出し時の画像表示 [m] 11/13
└◇725:nik5.0RC5 [m] 11/13
└◇729:Re:nik5.0RC5 [tako] 11/14 <
いろいろいじているものの解決策は見当たらないのですが、原因というかそれらしきものを発見しましたので記しておきます。スレッド一覧
rib.plの357行目 UpFile式内の#添付データ書き出しで、
$ImgFile2[$_] = "$file_dir$img_f_n……………"とありますが、$file_dirはset.plで指定したnik.cgiからの相対パスで「../../xxxxx/yyyyy/nikup/」としています。
#添付データ書き出しの処理はnik.cgiと同じディレクトリからされていますから、nik.cgi表示上の画像のパスは上記のままで問題ありません。しかし書き出したhtmlファイルは先ほどのディレクトリ内に書き出されるようにしてあるため、この相対パスはこのファイルからではおかしな表示になるのは当然です。
ちなみに前述の"$file_dir$img_f_n……………"から$file_dirをはずして同処理を行いますと、例えば<img src="12345_1.jpg">のように画像のパスがなくなって書き出されますがnik.cgiと同じディレクトリに画像ファイルがアップされてしまうのでこれではいけません。
以上のことから画像のアップ先が別ディレクトリの場合はnik.cgiとhtml書き出し時には処理を分岐させなければならないような感じがするのですが、いかがでしょうか…
もしくわhttp://からはじまる絶対パスが書ければどちらの場合にも対応できるのですが、強引に"http://www.xxx.xx.jp/xxxxx/yyyyy/nikup/$img_f_n……………"としてもアップ失敗に終わりました。
明日また挑戦してみますが、何卒よろしくお願いします。
アップロードした画像を「自分で指定(タグ貼付け)」でタグを貼り付けている場合は自分で記事内のタグを修正するしかありません。スレッド一覧
それ以外でアップロード画像を表示させている場合は、画像出力時だけ設定と違うパスを付加しなければいけないでしょう。
絶対パスがエラーになるのは、アップロードディレクトリの指定ですので、FTPの絶対パスならばアップロードはできます。そうするとHTTPでの表示が出来なくなりますが。
結局はアップロード用ディレクトリ指定と表示用のディレクトリ指定に分ける必要があります。
基本的に書き出し用インデックスファイルとnik.cgiを別ディレクトリに置くという考えがないので、その辺は検討してみます。
対処しました。スレッド一覧
set.plで設定をしてみてください。
それでダメならばまた書き込んでください。
テンプレートを使用しており、さらに画像とhtmlファイルは同ディレクトリ内にあるので、nik.cgiの4575行目辺りのhtml書き出しの部分で…スレッド一覧
# テンプレートを使う場合はここを使用しますよ
if ($log_html and -e $log_html) {
$aaa = "../../hoge/xxxxx/yyyyy/nikup/";
$m_sw = 0;
$test .= &logvw_tmp(@_);
$test =~ s/$aaa//g;
のように強引に相対パスをはずしてみたところ、htmlファイルでも画像表示されるようになりました。
新しいファイルも設定していただきそちらもテスト済みです。
うまく動いております。
お忙しいところ大変ありがとうございました。
#別な問題が出ているので別スレにて…