2017-10-03 26 views
0

データ型imageの列からMicrosoft SQL Serverデータベースのイメージデータを取得して表示し、ファイルに保存しようとしています。しかし、一部の画像(10%)は完成していません。ブラウザでは、上から半分または1/3だけレンダリングされます。 「問題のある」画像が同じで破損するたびに同じことが繰り返されます。 PHPバージョン5.5.19-1〜dotdeb.1(CCA 10%のイメージが壊れた) dbからのイメージが完成していません

  • の作業サーバー - 私は、サーバーを動作していない2台の異なるサーバ

    • にショーや店舗をしようとしていた

      問題の画像 - PHPバージョン5.2.17(OKすべての画像)

    私は両方のサーバー上で使用する場合は、この:

    var_dump(base64_encode($row['data'], "UTF-8")); 
    

    イメージの一部が欠落しているように見えます - 文字列が短くなりました。

    これはデータの解釈/変換に問題がありますか?私が取得したデータiconv_get_encodingまたはmb_detect_encodingに使用した場合の両方が両方のサーバー上のfalse戻る

    ...

    マイコード:

    $conn = mssql_connect ('xxx.xxx.xxx.xxx' , 'xxxxxxxxx', 'xxxxxxxxxxxxxxxxx'); 
    
    if (!$conn) { 
        echo "<p style='color: red'>error in connection db! id: ".$id."</p>"; 
    } else { 
        mssql_select_db('CK', $conn); 
        echo "<p style='color: green'>connection ok for id: ".$id."</p>"; 
    } 
    
    $result = mssql_query(
        "SELECT k.data FROM KatG k 
        WHERE k.auto='".$id."' 
        ORDER BY k.attr DESC"); 
    
    $row = mssql_fetch_assoc($result); 
    
    
    $imageData = base64_encode($row['data']); 
    $src = 'data: image/jpeg;base64,'.$imageData; 
    $img = '<img style="height: 60px; float: right;" src="'. $src. '">'; 
    
    echo $img."<p>OK i get data!</p> <hr>"; 
    

    私はこのように、この画像を保存した場合:(base64_encode機能なし)

    $im = imagecreatefromstring($row['data']); 
    imagejpeg($im, $path); 
    

    画像がブラウザの表示イメージと同じように壊れています。

  • 答えて

    0

    mssql_fetch_assoc前に、必要な増加TEXTSIZEたとのイメージはOKです...

    mssql_query('SET TEXTSIZE 10000000'); 
    

    だから違いは、あなたが

    mssql.textlimit = 10000000 
    mssql.textsize = 10000000 
    
    pernamentこの値を設定することができますが php.iniにありました
    関連する問題