Php Laravel上载的文件,权限低

Php Laravel上载的文件,权限低,php,apache,file-upload,laravel,permissions,Php,Apache,File Upload,Laravel,Permissions,大家好 我正在构建一个Laravel 4应用程序,我有一些文件权限问题 一旦客户端上传了文件,它就会被移动到一个文件夹中。但是,该文件获得的权限非常小,被分配给用户www数据,并且不能被其他任何东西触摸/移动 我需要知道如何动态地允许laravel对这些文件拥有权限,因为我正在使用转换此文件 我也在Ubuntu 14.04上,我的产品也在debian上。我已经尝试chmod-R文件夹,它适用于已经保存的文件,但是当创建新的文件时,它不再工作,只保留在www data ready中,权限较低 谢谢

大家好

我正在构建一个Laravel 4应用程序,我有一些文件权限问题

一旦客户端上传了文件,它就会被移动到一个文件夹中。但是,该文件获得的权限非常小,被分配给用户www数据,并且不能被其他任何东西触摸/移动

我需要知道如何动态地允许laravel对这些文件拥有权限,因为我正在使用转换此文件

我也在Ubuntu 14.04上,我的产品也在debian上。我已经尝试chmod-R文件夹,它适用于已经保存的文件,但是当创建新的文件时,它不再工作,只保留在www data ready中,权限较低

谢谢你的回答


编辑:我可能找到了具有给定权限的chmod g+s。我读到它给了创建的文件递归权限。我一到家就试试。

该帐户“www-data”是web服务器的默认帐户。这就是为什么它成为文件的所有者,并且从web的角度完全可以访问这些文件。如果您试图在web上下文之外转换文件(如cron作业或其他),那么您需要确保文件的所有者是同一个用户(或者可能是一个组)。还没有尝试过CloudConvert(看起来很酷,我会去看看),但也许你可以利用Laravel的队列,用web服务器的“www数据”帐户执行转换

恐怕这对我来说是个愚蠢的错误


我在curl传递文件之前重命名了该文件,使其无法知道原始文件名(getClientOriginalName())。

是的,CloudConvert使用curl将文件发送到其服务器。但是,我不知道如何让它访问www数据。但它是由web服务器的进程触发的?如果是这样,它应该作为www数据运行并拥有这些文件?您是否将上载的文件存储在/storage目录下?由于web服务器拥有该目录,因此应该可以访问该目录下的文件。我有一个可以上传的应用程序。我将临时文件存储在app/storage下的一个子文件夹中,然后裁剪、调整大小并运行一个进程以上载到AWS S3。这比在公共目录下尝试要好,因为我只想暂时保存它们,直到它们被重新上传。它被上传到我创建的公共/上传文件夹中(尽管我尝试让php创建它,但没有成功)。也许我可以将它存储在存储文件夹中,因为它是临时的。你能帮我写一个关于移动临时文件的片段吗?谢谢:)这是我代码中的一小段代码,它获取文件,计算命名和存储文件的哈希值,检查目录是否存在,然后移动它()。这是一篇很好的博客文章,我第一次尝试这种上传()时就开始写了。