0

我想将 Laravel 项目外部文件夹中的文件保存到本地机器上的文件夹中,例如“C:/uploads”。当本地机器上安装的项目保存在“C:/uploads”文件夹中,但当项目在线安装在服务器上时,不要保存在“C:/uploads”中。

在 filesystems.php 我把喜欢:

'local' => [
     'driver' => 'local',
      //'root' => storage_path('app/public'),
      //'root' => public_path('uploads'),
      'root'=>'C:\uploads',
 ],

'public' => [
    'driver' => 'local',
     'root' => storage_path('app/public'),
     'visibility' => 'public',
],

在 HomeController.php 函数中:

$files = Input::file('images');
$file_count = count($files);
$uploadcount = 0;        
foreach($files as $file) {
  //$destinationPath = 'uploads';
  $filename = time() .'-'.$file->getClientOriginalName();
  //$file->move($destinationPath, $filename);
  Storage::disk('local')->put($filename, File::get($file));
  $image=new Image();
  $image->sparepart_id = $id;
  $image->Filename=$filename;
  $image->save();
  $uploadcount ++;

}

4

1 回答 1

1

你可以使用 Laravel 的环境变量来实现这一点。

在您的 .env 文件中(示例 1)

FILESYSTEM_DRIVER=name_of_your_disk

或者定义应用环境(示例2)

APP_ENV=production

然后为您的本地环境和服务器环境相应地更改这些值,并在您的代码中使用它们来检查正在使用的环境。

在您的家庭控制器中,您可以简单地使用 Storage 门面,而不使用磁盘调用来使用 ex 1 中定义的默认磁盘。或者您可以检查 APP_ENV 并根据它保存或不保存到所需的磁盘。

if(env('APP_ENV') !== 'production')
{
    Storage::disk('local')->put($filename, File::get($file))
}
于 2017-12-04T09:43:13.080 回答