php - 在 laravel5.1 中使用 FileSystem 上传文件?

标签 php laravel file-upload laravel-5 laravel-5.1

我想在 laravel 中上传文件,我只使用本地服务器而不是任何云存储。 从doc中,我找到了两个与文件上传相关的方法,

  • 普通方法(Request::file('file')->move(dest,filename))
  • 使用File system

但我无法理解这些方法之间的实际区别?

如果我用的是普通方法,

$file->move('path', $fileName);

这里路径应该放在哪里,storage/app or public/uploads(new)?

如何使用文件系统上传文件?

最佳答案

“正常”方法允许您仅将上传的文件保存在您选择的任何位置的本地文件系统中,只要 PHP 对该位置具有写入权限。该方法只能用于“保存”操作,并且只能用于上传的文件。

“文件系统”方法更加灵活,因为它在您写入的地方添加了一个抽象层。文件系统配置存储在单独的配置中,并且对您的代码透明。您可以轻松更改底层存储(例如,从本地到云)或更改路径,而无需对代码进行任何更改。文件系统还为您提供了许多额外的辅助方法来操作它存储的文件,例如列出所有文件、检查是否存在、删除。另一个优点是它可以用于任何文件,而不仅仅是用户在当前请求期间上传的文件。

回答你的第二个问题:你决定在普通和文件系统方法中存储文件的位置。在传递路径的常规方法中,在文件系统中,您使用 filesystems.php 配置配置路径。

以及如何使用文件系统上传文件?您不使用文件系统上传文件,而是使用它来保存上传的文件。上传过程是相同的,但不是调用 $uploadedFile->move(),而是:

Storage::put('file key', file_get_contents(Request::file('file')->getRealPath()));

关于php - 在 laravel5.1 中使用 FileSystem 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422982/

相关文章:

php - allow_url_fopen 打开但 phpinfo 关闭

php - 为什么/user/{username} 没有自动显示?

php - 在数据库中存储和更新抓取的数据

php - 如何在手机上通过网站上传文件?

python - 使用angular上传文件时Flask访问请求数据

php - 为什么不显示行内元素? Bootstrap

php - Mysql:当加入字段等于条件时选择

css - 通过 Composer 安装后,我在哪里可以找到 css bootstrap?

php - 没有主键的 Laravel 模型保存数据

javascript - 我如何使用 Node js上传文件?