アップロード画像が表示されない

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
タイタイ

アップロード画像が表示されない

投稿記事 by タイタイ » 2006年1月02日(月) 01:39

アップロードした画像が表示されません。
スキーマで
<img src="http://www.xxxxxx.org/cmsd/{image}">
と定義していますが、
<img class="cmsdimage" src="cmsdesigner/viewimg.php?entryname=amicnews&entryid=00001&fileid=00000001&/TV-CF_iroiro_200.jpg" alt="" />

となるはずなのですが、実際のエントリーのページのソースでは、
引数と引数の間の&記号が、「&amp;」になってしまい、IE6では
表示されません。

マニュアル5.5.1のdisable-output-escaping=yes を使えば変換されない
ようですが、{データ項目名}を使っているときは、その指定方法がわかりません。
何か回避策はあるでしょうか。
ちなみにサーバは導入サーバはロリポップで、実際に表示させるサーバは
xml非対応のサーバです。(あまり関係ないかもしれませんが。)

なお、opera8なら、それでも画像は表示されます。IE6だと表示されないのです。

お手数ですがよろしくお願いします。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: アップロード画像が表示されない

投稿記事 by webmaster » 2006年1月04日(水) 15:01

 webmasterです。タイタイさん、ご質問ありがとうございます。
 お返事が遅れまして申し訳ありません。

 ご質問の件ですが、例えば次のように書くことで回避可能かもしれません。

コード: 全て選択

<img class="cmsdimage">
<xsl:attribute name="src">
http://www.xxxxxx.org/cmsd/<xsl:value-of select="image" disable-output-escaping="yes" />
</xsl:attribute>
</img>
 xsl:attributeタグはXSLTの命令タグで、「一つ外側の要素に、nameで指定した
名前の属性を追加する」という機能を持ちます。

 ただ、そもそも{データ項目名}で出力される画像パスが「&amp;」になってしまう
という現象がこちらでは確認できない為(ロリポップのサーバーを使用しています)、
ひょっとすると別の根本的な問題がある可能性があります。

 また結果をご連絡頂ければ幸いです。

タイタイ

Re: アップロード画像が表示されない

投稿記事 by タイタイ » 2006年1月05日(木) 00:49

お返事ありがとうございます。

ご指示のとおりに変えてもダメでした。

<img class="cmsdimage" src="%0ahttp://www.mediasens.org/cmsd/cmsdesigner/view ... er_200.jpg">

が返ってきます。
httpの頭に%0aがつくのは改行のせいでしょうか?
&amp;はそのままですね。
やはり外部から呼び出しているのが原因かも・・・

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: アップロード画像が表示されない

投稿記事 by webmaster » 2006年1月05日(木) 10:50

 webmasterです。
 お手数をおかけしております。m(_ _)m

 すいません、%が入るのは、改行があるからだと思います。改行を消して、
再度お試しいただければと・・・。m(_ _;)m

 ところで、少し話が戻るのですが、こちらで&を「&amp;」に変えた状態のURL
を意図的に作り、imgタグのsrc属性として設定したテストHTMLを作成してみた所、
問題なく画像を表示することができました。

 Win-IE6の環境です。Firefox1.0.7(win)でも同様に問題なく表示できました。

 ひょっとすると、「&amp;」が原因ではない可能性があります。

 何度もお手数をおかけして申し訳ないのですが、一度、最終的に出力されるHTML
の内容を cms(a)al-design.jp 宛(スパム防止の為、@を(a)と表記しています)まで
お送り頂けないでしょうか。

タイタイ

投稿記事 by タイタイ » 2006年1月05日(木) 16:03

お世話になります。

改行をカットしたら表示されるようになりました。

以前との違いは、widthとheightの指定のあるなし、です。

<img src="http://www.mediasens.org/cmsd/{image}" width="{image}/@width"
height="{image}/@height" />

これがもともとのソースですが、これだと画像が表示されませんでした。

ということで&のせいではなさそうです。

いちおう、そのときのソースをメールで送っておきました。

とりあえず表示できたので安心しました。

いろいろとありがとうございました。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

投稿記事 by webmaster » 2006年1月05日(木) 16:24

 webmasterです。タイタイさん、メールでのご報告も併せてありがとうございました。

 出力ソースと、上記のスキーマを拝見すると、widthとheightの指定内容に
原因があったようです。

コード: 全て選択

<img src="http://www.mediasens.org/cmsd/{image}" width="{image/@width}" 
height="{image/@height}" />
 これでうまくいくと思います。

 image/@width や image/@height 等は、/@width等も合わせて一つの
項目名になる為、全体を{}で囲う必要があります。この辺、詳しい説明が無い
為混乱を招いたかと思います。m(_ _)m

 また、お試し頂ければ幸いです。

タイタイ

投稿記事 by タイタイ » 2006年1月05日(木) 23:46

お世話になります。

width="{image/@width}"

この方法でIE6でもうまくいきました。ちょっとした違いだったのですね。

いろいろと丁寧にご教示いただき感謝いたします。

これからもCMSDをどんどん活用していこうと思いますので

またよろしくお願いします。

返信