0

我正在使用谷歌云 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)

现在将此 blob 用于 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>

它没有显示任何图像,它只是显示图像区域..如果我做错了什么,请告诉我..

实际代码:网络脚本:

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
}

图像.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"/ >

确保您将图像参数传递给模板以进行评估。

完整版应该看起来像 -

<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 回答