我正在使用谷歌云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>
它不显示任何图像,只是丢弃图像区域。。。。如果我做错了什么,请告诉我。。
实际代码: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>
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>