Google云端硬盘是否可以通过Laravel进行保存?

时间:2016-11-16 22:03:09

标签: google-drive-api filepath

我正在尝试使用Google提供的“保存到驱动器”按钮,以便更轻松地上传云端硬盘,它看起来像这样:

<script src="https://apis.google.com/js/platform.js" async defer></script>
<div class="g-savetodrive"
   data-src="//example.com/path/to/myfile.pdf"
   data-filename="My Statement.pdf"
   data-sitename="My Company Name">
</div>

我的问题是,由于我使用Laravel和php artisan serve命令来为我的项目提供服务,我应该如何编写文件路径?它位于'项目名称'/ storage / app / docs /,我尝试//storage/app/docs/{{ $file->path }}但它不起作用,并且使用storage_path()没有改变任何东西。我在这里错过了什么?

编辑: 我尝试使用另一个文件,一个托管在其他地方的文件。所以我在我的项目上启用了CORS,并使用Postman测试了我正在使用的标题:

Access-Control-Allow-Headers →Content-Type, X-Auth-Token, Origin, Range

Access-Control-Allow-Methods →POST, GET, OPTIONS, PUT, DELETE

Access-Control-Allow-Origin →*

Access-Control-Expose-Headers →Cache-Control, Content-Encoding, Content-Range

根据Google文档,它应该现在正在运行,但事实并非如此。 这是我在控制台中遇到的错误:

Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:8000' is therefore not allowed access.
The response had HTTP status code 400.

而且我理所当然地缺乏想法。

1 个答案:

答案 0 :(得分:0)

正如文件中所述 - Troubleshooting

  

如果在下载data-src网址时收到XHR错误,请确认该资源确实存在,并且您没有CORS问题。

     

如果“保存到云端硬盘”按钮适用于除Internet Explorer 9以外的所有浏览器,则可能需要将浏览器配置为启用CORS,默认情况下已禁用该版本。

     

如果大文件被截断为2MB,则可能是您的服务器未公开Content-Range,可能是CORS问题。

请注意相关SO问题的答案 - Save To Drive Button Doesn't Workdocumentation

  

可以从其他域提供 data-src 网址,但HTTP服务器的响应需要支持HTTP OPTION请求并包含以下特殊HTTP标头:

Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Range
Access-Control-Expose-Headers: Cache-Control, Content-Encoding, Content-Range