0

データベースとしてGoogleクラウドSQLを使用しています....UrlFetchを介して画像コンテンツをフェッチし、FetchResponseをblobに変換しています....しかし、データベースからblobデータを取得しようとしていて、それを画像としてアップロードしようとすると、そうではありません働く....

Code : 
 var base = 'https://www.google.com/m8/feeds/'; 
 var fetchArgs = googleOAuth_('contacts', base);
 fetchArgs.method='GET'
 var photoURL==// url for image
 var image=UrlFetchApp.fetch(photoURL,fetchArgs)
 var imageBlob=image.getBlob()

imageBlob は、データベース内の PHOTO フィールドのタイプが LONGBLOB であるデータベースに格納されます

今、私は写真を取得しようとしています

 var conn  = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://"+instance_name+"/"+database_name);
  var stmt=conn.createStatement()
  var query="select PHOTO from user_info"
  var rs=stmt.executeQuery(query)
  rs.next()
  var image=rs.getBlob(1)

このブロブを次のようにhtmlファイルに使用します。

<html>
  <body>
    <center>
    <p>This is image</p>
    <img src="data:image/jpeg;base64,"+Base64.encode(image) width="100" height="100"/ >
      <p> This is image</p>
    </center>
  </body>
</html>

画像が表示されず、画像領域が表示されません....何か間違っている場合はお知らせください..

実際のコード: Web スクリプト:

function doGet() {
 return HtmlService.createTemplateFromFile("image").evaluate();

}

function myFunction(){
  var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://"+instance_name+"/"+database_name);
  var stmt=conn.createStatement()
  var query="select PHOTO from user_info"
  var rs=stmt.executeQuery(query)
  rs.next()
  var image=rs.getBlob(1)
  stmt.close()
  conn.close()
  return image
}

image.html

<html>
  <body>
    <center>
    <p>This is image</p>
    <img src="data:image/jpeg;base64,"+Base64.encode(<?= myFunction()?>) width="100" height="100"/ >
      <p> This is image</p>
    </center>
  </body>
</html>
4

1 に答える 1

0

HTML ファイルに一貫性のない引用があります。それをテンプレートとして使用していますか? また、正しい base64 エンコード関数はbase64Encodeです。それも問題なのではないでしょうか?

<img src="data:image/jpeg;base64,<!=Utilities.base64Encode(image)?>" width="100" height="100"/ >

評価するテンプレートに image パラメータを渡していることを確認してください。

フルバージョンは次のようになります -

<html>
  <body>
    <center>
    <p>This is image</p>
    <img src="data:image/jpeg;base64,<!=Utilities.base64Encode(myFunction()?>)" width="100" height="100"/ >
      <p> This is image</p>
    </center>
  </body>
</html>
于 2012-12-11T06:25:00.223 に答える