如何在 laravel 5 控制器中复制文件

How to copy files in laravel 5 controller

我想将文件复制到 laravel 中的文件夹。 当我复制文件时显示这个错误

The second argument to copy() function cannot be a directory

我的代码:

$success = \File::copy(base_path('test.text'),base_path('public/'));

错误说明了它的含义。如果您阅读有关 copy() 函数的文档,它会声明您必须从一个文件复制到一个新文件。例如,将内容从 .txt 文件复制到 another.txt 文件。

因此只需在 public 部分后添加 test.text 即可创建新文件或覆盖现有文件。

$success = \File::copy(base_path('test.text'),base_path('public/test.text'));

您可以使用 public_path() 函数获取 public/ 文件夹的路径 您可以像这样复制该文件

$destinationPath=public_path()."/UploadFolderName/FileName.ext";
$success = \File::copy(base_path('test.text'),$destinationPath);

现在 question 是你的 source file 在哪里?如果它已经在 public folder 中,那么您会像这样获得该文件的完整路径。

$sourceFilePath=public_path()."/SomeFolderName/FileName";
$destinationPath=public_path()."//UploadFolderName/FileName.ext";
$success = \File::copy($sourceFilePath,$destinationPath);

编码愉快!!!

编辑

public_path()laravel 内置函数,它提供 public 文件夹的完整 path。欲了解更多信息,请阅读此处:https://laravel.com/docs/5.2/helpers#method-public-path