我在Firebase存储中有各种包含html文件的存储桶。我想要做的是通过Javascript,获取存储桶中特定HTML文件的URL,然后在新选项卡中打开它。当我使用'getDownloadURL'方法,并将url传递给window.open时,我发现暂时打开一个新选项卡,下载文件,然后关闭选项卡。理想情况下,我想完全避免下载文件,只是查看它。我相信这是因为URL本身的格式: https://firebasestorage.googleapis.com/v0/b/[project].appspot.com/o/[bucket]%2Fcreate.html?alt=media&token=[token]
任何人都可以帮我使用window.load来打开新标签中的html文件吗?我宁愿根本不下载文件,我需要选项卡保持打开状态。在此先感谢您的帮助!
var storage = firebase.storage();
var storageRef = storage.ref();
var reportFileRef = storageRef.child(currentUid + '/create.html');
reportFileRef.getDownloadURL().then(function(url) {
window.open(url, '_blank')
});
答案 0 :(得分:0)
正确设置元数据解决了Content-Disposition问题。这是我定义的函数,其中contenttype是" text / html"或" image / png"
def uploadToFirebaseStorage(filename, filepath, user, report, contenttype):
my_file = open(os.path.join(filepath, filename), "rb")
my_bytes = my_file.read()
my_url = "https://firebasestorage.googleapis.com/v0/b/[project].appspot.com/o/" + filename
my_headers = { "Content-Type": contenttype }
my_request = urllib.request.Request(my_url, data=my_bytes, headers=my_headers)
try:
loader = urllib.request.urlopen(my_request)
except urllib.error.URLError as e:
message = json.loads(e.read())
return message["error"]["message"]
else:
return loader.read()