Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以先使用PHP将文件上传到Dropbox,而不将其存储在我的服务器上?_Javascript_Php_Jquery_Heroku_Dropbox - Fatal编程技术网

Javascript 是否可以先使用PHP将文件上传到Dropbox,而不将其存储在我的服务器上?

Javascript 是否可以先使用PHP将文件上传到Dropbox,而不将其存储在我的服务器上?,javascript,php,jquery,heroku,dropbox,Javascript,Php,Jquery,Heroku,Dropbox,目前,我有一个使用Postgresql数据库在Heroku上运行的PHP应用程序。我希望我的用户能够将图像上传到dropbox上的文件夹,并在我的数据库中存储其他信息(在本例中,是产品信息,例如价格、标题、重量、dropbox上图像的位置) 现在,我正在使用HTML表单中的文件输入,通过将整个表单发布到服务器(包括图像)来提交图像,然后使用cURL将图像发送到dropbox并等待响应成功。如果成功,我将创建包含前面提到的其他信息的数据库记录 这对小文件很有效,但Heroku有30秒的超时时间,我

目前,我有一个使用Postgresql数据库在Heroku上运行的PHP应用程序。我希望我的用户能够将图像上传到dropbox上的文件夹,并在我的数据库中存储其他信息(在本例中,是产品信息,例如价格、标题、重量、dropbox上图像的位置)

现在,我正在使用HTML表单中的文件输入,通过将整个表单发布到服务器(包括图像)来提交图像,然后使用cURL将图像发送到dropbox并等待响应成功。如果成功,我将创建包含前面提到的其他信息的数据库记录

这对小文件很有效,但Heroku有30秒的超时时间,我无法更改。对于大文件,整个文件上载到服务器,然后上载到dropbox。这两个上载操作都是时间密集型操作,需要的时间超过超时允许的时间

我的想法是使用javascript(特别是jQuery ajax命令)将文件发送到dropbox,以便由客户端处理,然后在成功后发布到我的服务器,但我担心这有多安全,因为我需要在客户端可以查看的源代码中拥有自己的授权令牌


PHP有没有办法将文件从客户端发送到外部URL,而不必触碰服务器?如何安全地执行此操作?

这听起来非常适合

您可以在服务器上调用它来检索临时上载链接,然后将该链接向下传递到浏览器。然后,您可以让一些JavaScript代码使用该链接直接从浏览器执行上传


由于只有/2/files/get\u temporary\u upload\u link端点调用需要您的Dropbox访问令牌(而临时上传链接本身不需要),因此您可以仅在服务器上对访问令牌保密,而不向客户端公开。而且,由于上传直接从浏览器上传到Dropbox服务器,因此您不必通过自己的服务器传递文件数据,从而避免超时问题。

“但我担心这有多安全,因为我需要在客户端可以查看的源代码中拥有自己的授权令牌。”-因此根本不安全。“PHP有没有从客户端发送文件的方法”-没有,当然没有-PHP在服务器上运行,无法直接访问任何客户端上的任何文件。“我该如何安全地做到这一点?”-首先,你要放弃这样一种观念,即你总是能够在廉价的$$免费主机上实现你可能想要的所有美好的事情:-)谢谢!看来这是我想做的最好的方法。对于其他遇到这个问题的人,我还建议研究区块上传(或者用dropbox术语来说,使用上传会话)。这将是我解决这个问题的方法,但这个答案正是我想要的。