我想将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 ++;
}
答案 0 :(得分:0)
您可以使用Laravel的environment变量来实现此目的。
在.env文件中(示例1)
FILESYSTEM_DRIVER=name_of_your_disk
或定义应用程序环境(示例2)
APP_ENV=production
然后相应地为本地env和服务器env更改这些值,并在代码中使用它们来检查正在使用的env。
在您的家庭控制器中,您可以简单地使用没有磁盘调用的存储外观来使用前面1中定义的默认磁盘。或者您可以检查APP_ENV并根据它保存或不保存到所需的磁盘。
if(env('APP_ENV') !== 'production')
{
Storage::disk('local')->put($filename, File::get($file))
}