1262574735 「jpg画像だけ」のwebページを1枚作りました。それをffftpでアップロードすると、リンクは生きていますが、画像ファイルが壊れて四角に赤いバツが表示(IE7の場合)されてしまいます。fire foxの場合は、なにも表示されずリンクもされません。


ローカルでは問題なく画像も表示され指定のオンラインにすればリンクを貼ったURLに飛ぶのですが、なぜウェッブサイト上に置くと画像ファイルが壊れてしまうのでしょうか?どうも初歩的な間違いをしているようですが、当方初心者なので分かりやすくご教授くだされば幸いです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2010/01/04 12:12:16
  • 終了:2010/01/04 14:45:07

ベストアンサー

id:horonict No.6

horonict回答回数257ベストアンサー獲得回数512010/01/04 13:53:13

ポイント70pt

http://q.hatena.ne.jp/1262574735#a979267のつづきです。


ご質問の「jpg画像だけのwebページ」という部分で誤解していたようです。

http通信(普通にブラウザでサイトを見るための通信)では、原理的に、「jpg画像だけのwebページ」というのは扱うことができません。かならずhtmlファイルと画像ファイルがセットでなければなりません。


たとえば画像ファイル "hoge.jpg" と、下記のようなテキストファイル "hoge.html" の2つのファイルをWebサーバにアップロードする必要があります。

<html>
<body>
<img src="hoge.jpg" />
</body>
</html>

おそらくid:clairvoyanceさんは、jpgファイルの冒頭にhtmlファイルを結合し、拡張子htmlの1本のファイルとしてアップロードしているのだと思いますが、これだと、Webサーバはファイル冒頭のテキスト部分のみを認識してクライアントPC(ブラウザ)に送信することになり、画像部分は送信されません。

id:clairvoyance

このフォローとても有難いです。リアルタイムでチェックしているため、トライする前に返事を書いています。たしかに私は、jpgファイルをhtmlファイルとしてアップロードしましたが、別々に(*は同じ名前で *jpg と *html)アップしなければならないということなのですね?

2010/01/04 14:19:35

その他の回答(5件)

id:Reiaru No.1

Reiaru回答回数152ベストアンサー獲得回数382010/01/04 12:27:59

ポイント30pt

これは無いと思うのですが、一応確認の為。

ファイルの転送モードが「アスキー転送モード」になっていれば画像ファイルは壊れます。

画像は「バイナリ転送モード」で送信して下さい。


FFFTP であれば、ツールバーにある AB というボタンで切り替えられます。


※ 違っていればポイントは後程ポイント送信にてお返し致します。


http://q.hatena.ne.jp/

id:clairvoyance

早速ありがとうございます。気が付かない部分でしたのでチェックしてみましたが、「B」(バイナリー)で再度やっても結果は同じでした。ポイントはもちろんお支払いしますよ。

2010/01/04 12:56:43
id:TRTr No.2

TRTr回答回数52ベストアンサー獲得回数132010/01/04 12:28:14

ポイント15pt

いくつかのケースが考えられます。


ローカルでのファイルサイズと、FTPでアップロードしたファイルサイズは同一でしょうか?

一致しない場合、アップロード時にファイルが壊れてしまっている可能性があります。

原因としては、主にアップロードサイズの上限が考えられます。

まれに設定に問題があることもあります。


一致する場合には、

そもそも表示しようとしているjpgはどの程度のサイズがあるでしょうか。

サーバによっては送出サイズの制限があるところがあり、

あるサイズ以上は要求しても送信してくれないため

受信側からはファイルが壊れて見えてしまうことがあります。


まずは、10kバイト程度の小さなjpeg画像を同じ手順でアップロードしてみてください。

小さな画像で正常に動作するのであれば上記問題と推測できます。

小さい画像でも壊れてしまうのであれば、

アップロード時に何らかの問題がある物と思われます。

URLはダミーです

http://q.hatena.ne.jp/

id:clairvoyance

早速ありがとうございます。jpgファイルのサイズをプロパティで調べてみると、13.3kバイトとあり、ディスク上のサイズは16kバイトとなっていました。なお、念のため、htmlファイルとしてではなく、このjpgファイルとしてアップロード(バイナリー転送で)したら、ちゃんとウェッブ上で見ることができました。どうしてなんでしょうね?

2010/01/04 13:04:09
id:horonict No.3

horonict回答回数257ベストアンサー獲得回数512010/01/04 13:10:35

ポイント18pt

jpgファイルの拡張子をhtmlに変更してバイナリでFTPアップロードすると、アップロード自体は正常に行われます。

しかし、Webサーバが、拡張子htmlはテキストファイルであると解釈して(これをMIMEタイプと言います)クライアントPC(ブラウザ)にデータを送信するので、ご質問のような事態になってしまいます。ファイルの拡張子は変更しないようにしましょう。


MIMEタイプとは

http://www.tohoho-web.com/wwwxx015.htm

id:clairvoyance

ありがとうございます。だんだん核心に近くなってきたような気がします。(トライする前にこれを書いているのですが)ということは、jpgファイルの外に一文字でもテキストを添えて、「html」ファイルとしてなら問題ないということなのでしょうか?

2010/01/04 13:18:32
id:akiruno1978 No.4

akiruno1978回答回数8ベストアンサー獲得回数12010/01/04 13:30:55

ポイント3pt

htmlもしくはjpgファイルが日本語のファイル名がついているとか?

ダミー

http://www.google.co.jp/

id:clairvoyance

いくら初心者でもそれはありませんよ。

horonictさんのご指摘を受けて、jpgファイルに一緒にテキストを交えて(つまりよくあるウェッブサイト)htmlファイルとしてアップロードすると、jpgファイルが壊れていて、テキストだけが読めます。

2010/01/04 13:36:50
id:doumoto No.5

どうもと回答回数497ベストアンサー獲得回数372010/01/04 13:41:41

ポイント11pt

htmlのパス指定がローカル(パソコン側)になってるってオチじゃないですか?(´ー`)y-~~。

例えば、

<img src=c:\image\20212.jpg>

って記述すると、自分のパソコン内のお宝画像が表示されますが、ftpでアップしても表示されません。

サーバーごとにディレクトリ構造が違いますが、例えば、virtual/home/image/20212.jpg というディレクトリになってるとすると、

<img src=/image/20212.jpg>

と記述すると、httpで画像が表示されます。imgタグの記述も確認してみてください。

ディレクトリパス等々がわからない場合は、絶対パス、http://www.hogehoge.com/image/20212.jpg と記述する方法もあります。

id:clairvoyance

こんにちは。おそらくどうってことないオチなんだとは私も思うのです。

しかし、このご指摘は私にはちょっと難しいです。もう少し初心者でも分かるように、どのようにしたらjpgファイルだけで作ったページ(htmlファイル)が壊れないでアップできるのかご教授くださいませ。

2010/01/04 13:52:32
id:horonict No.6

horonict回答回数257ベストアンサー獲得回数512010/01/04 13:53:13ここでベストアンサー

ポイント70pt

http://q.hatena.ne.jp/1262574735#a979267のつづきです。


ご質問の「jpg画像だけのwebページ」という部分で誤解していたようです。

http通信(普通にブラウザでサイトを見るための通信)では、原理的に、「jpg画像だけのwebページ」というのは扱うことができません。かならずhtmlファイルと画像ファイルがセットでなければなりません。


たとえば画像ファイル "hoge.jpg" と、下記のようなテキストファイル "hoge.html" の2つのファイルをWebサーバにアップロードする必要があります。

<html>
<body>
<img src="hoge.jpg" />
</body>
</html>

おそらくid:clairvoyanceさんは、jpgファイルの冒頭にhtmlファイルを結合し、拡張子htmlの1本のファイルとしてアップロードしているのだと思いますが、これだと、Webサーバはファイル冒頭のテキスト部分のみを認識してクライアントPC(ブラウザ)に送信することになり、画像部分は送信されません。

id:clairvoyance

このフォローとても有難いです。リアルタイムでチェックしているため、トライする前に返事を書いています。たしかに私は、jpgファイルをhtmlファイルとしてアップロードしましたが、別々に(*は同じ名前で *jpg と *html)アップしなければならないということなのですね?

2010/01/04 14:19:35
  • id:seble
    あんましhtmlは知らないので突っ込まれると困るんだが、


    まだちょっと勘違いされてるような、、、
    index.htmlファイルにjpgファイルへのリンクを記述して、それぞれがアップされてなければ表示はされないと思いますよ。
    例えば、このページのアドレスは
    http://q.hatena.ne.jp/1262574735
    ですが、デフォルトでは
    http://q.hatena.ne.jp/1262574735/index.html
    として、htmlファイルを自動的に読みに行きます。
    で、そのhtmlファイルに記述されている内容でページが表示されてる訳です。
    画像は、単にそれだけのファイルなので、それだけでは画像が表示される事はありません。
    基本としては、index.htmlファイルにその画像へのリンクが記述されており、そのリンク先にリンクされた(アドレスとファイルネームが同じ)画像ファイルがアップされていて、初めて画像が表示されます。
    6の方の記述ですね。
    デフォではindex.htmlですが、別名でも可能です。
    hoge.htmlでも何でも、、、ただし、その場合はhtmlファイル名を正しくurlの窓に書かないと表示されません。

    また、画像ファイルだけを直接見る事もできなくはないです。
    その場合は、IEの窓のurlそのものを画像ファイルのリンクと同じにしてgo、とやってやれば見れます。
    http://q.hatena.ne.jp/images/question/1262574/1262574735.jpg
    (右上の画像だけを直接見る場合)
    http://k.yimg.jp/images/top/sp/logo.gif
    (こっちはyahooのロゴだけの直リンク)

    で、合ってる?
  • id:seble
    あ、違った、w
  • id:doumoto
    そそ、jpgファイルの冒頭にhtmlファイルを結合し、拡張子htmlの1本のファイルとしてって、バイナリエディタの話じゃん。そんなすごいことになってるの?(´ー`)y-~~。
    ホストにjpgが上がってないか、ローカルパスが指定されてるか、そういう単純な話だと思うんだけど。(´ー`)y-~~。
  • id:clairvoyance
    皆さんのご意見を参考に、試行錯誤のうえ問題が解決しました。
    要するに、「index.htmlファイルにjpgファイルへのリンクを記述して、それぞれがアップされてなければならない」ということですね。
    このような基本的なことを知らない初心者のような私でも、「はてな」の皆さんや便利なソフトウェアのおかげで、ウェッブサイトを作って情報を発信できることは素晴らしいと思います。すべての様々なご指摘をありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません