2012-04-30 14 views
2

私は動的にイメージのサイズを変更するPHPスクリプトを作成しています。イメージID(MySQLデータベースから)は、 "http://localhost/getimage/1.htm"のように渡されます。Chrome「画像をアンロードする」?

私は上記のようなURLで直接scripptに行くと、画像が完全に出てきます。しかし何らかの理由で(Chromeのみ)、そのURLをタグにリンクすると、それは変な動作を開始します。ページが最初に読み込まれると画像はうまくロードされますが、ローディングバーが約5秒回転して突然画像が消え、Chromeに「リソースを読み込めませんでした」というエラーが表示されます。

これを引き起こしている可能性のあることは誰でも知っていますか?私はAdBlockerと何か関係があったかもしれないと思っていましたが、私はそれを無効にしてしまいました。

乾杯。

編集:

header('Content-Type:'.$file['type']); 
    header('Content-Length: ' . $file['bytes']); 

    // Get size of original image 
    list($o_width, $o_height) = getimagesize($file['src']); 

    // Default width and height 
    if (is_null($width)) { 
     $width = $o_width; 
    } 

    if (is_null($height)) { 
     $height = $width; 
    } 

    // Create image frame 
    $image_p = imagecreatetruecolor($width, $height); 

    // Generate image depending on source type 
    switch ($file['type']) { 
     case "image/jpeg": 
     default: 
      $image = imagecreatefromjpeg($file['src']); 
      break; 
     case "image/gif": 
      $image = imagecreatefromgif($file['src']); 
      break; 
     case "image/png": 
      $image = imagecreatefrompng($file['src']); 
      break; 
    } 

    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $o_width, $o_height); 

    // Output 
    imagejpeg($image_p, null, 100); 
    exit; 

をあなたは私がコンテンツタイプを設定しています見ることができるように:これは私が使用していたコードです。それがhtm拡張であった場合、それを混乱させると、画像が正しくロードされた理由を説明してから、それ自体をアンロードしますか?

+5

私たちにデモやコードがありますか? –

+1

正しいコンテンツタイプで画像を配信していることを確認してください。 – bfavaretto

+0

私の最初の推測は、キャッシュと何か関係があります。キャッシュ内のバージョンをロードしている可能性があります。違うことに気づいて、URLから読み込み、.htmページを取得している可能性があります。でも、画像にリンクしているか、どのタグがあるのか​​わからないので、推測できません。 – DanRedux

答えて

1

これはChromeのみではありませんが、最初はこれが間違っています:header( 'Content-Length:'。$ file ['bytes']); imagejpeg($ image_p、null、100)でオンザフライでイメージを作成するため、実際のファイルサイズが分からないためです。

+0

素晴らしい - それはそんなにばかげた間違いでした。 – Raiden616

関連する問題