Safari使用Photo Sphere全景查看器加载图像的问题

时间:2018-08-09 06:37:09

标签: javascript php safari

我正在尝试使用Photo Sphere Viewer来构建类似建筑物内体验的google街景视图(以便您可以“四处走动”并查看事物在哪里)开发进展顺利,实际上我快完成了,然后我在Mac上尝试了,这就是问题所在。

我将图像文件存储在S3上,并使用一些php代码检索文件并将其发送到浏览器,我将标头设置为image / jpeg并发送了大小(想像一下文件的内容吗? f = fileName)。在Android,firefox和chrome上运行良好。但是如果我在iOS上尝试或在OSX上尝试使用Safari,则无法加载图像。如果我将它们存储在服务器上并直接调用它们,它们会很好地加载,但是如果我使用我的php脚本,则不会。

这是我用于检索和显示文件的代码(checkFile();只需检查以确保允许用户查看文件,返回true或false)

if(isset($_GET['f'])){
    if(checkFile($_GET['f'])){
        S3::setAuth($db->awsAccessKey, $db->awsSecretKey);
        $file = S3::getObject($db->imageBucket, $_GET['f']);

        header('Content-Type: '.$file->headers['type']);
        header("Content-Length: ".$file->headers['size']);
        echo $file->body;
    }
}

我可以在safari浏览器中直接查看文件吗?f = filename.jpg很好,检查器告诉我它恢复得很好。

这是网络标题的两个屏幕截图:

通过php文件(无法正常工作):

enter image description here

托管并直接指向图片:

enter image description here

我真的不知道从这儿去哪里,感觉好像我已经两天撞在砖墙上了。

据我所知,这与响应标头从php文件(而不是图像文件)返回时如何对待safari有关。无法直接托管文件,因为我必须限制谁可以看到它们,存在隐私问题,我不能只是将它们全部转储到可访问网络的文件夹中。

控制台中唯一显示的内容是:

PSVError: Cannot load image
(anonymous function) — photo-sphere-viewer.min.js:7:11311
(anonymous function)
f — three.min.js:14778
D.min.js:2

更新: 我还尝试将php文件修改为在本地文件上使用file_get_contents(),该操作也以相同的方式失败,因此看来这与标题有关,而不是损坏或类似问题。

0 个答案:

没有答案