4
The current storage location of the Laravel is /Laravel/Storage/app/public. How do I change to /Laravel/public. I tried to edit filesystems.php but was unsuccessful:
Controller store function:
public function store(Request $request)
{
$input = $request->all();
$paciente = new Paciente($input);
$paciente->save();
if(empty($request->arquivo))
{
return redirect()->action('PacienteController@index');
}
else
{
$file = $request->arquivo;
$fileName = $file->getClientOriginalName();
$path = $request->file('arquivo')->storeAs('uploads', $fileName, 'upload');
$arquivo = new Arquivo();
$arquivo->paciente_id = $paciente->id;
$arquivo->nome = $fileName;
$arquivo->save();
return redirect()->action('PacienteController@index');
}
}
Filesystems.php
return [
/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| Here you may specify the default filesystem disk that should be used
| by the framework. The "local" disk, as well as a variety of cloud
| based disks are available to your application. Just store away!
|
*/
'default' => 'local',
/*
|--------------------------------------------------------------------------
| Default Cloud Filesystem Disk
|--------------------------------------------------------------------------
|
| Many applications store files both locally and in the cloud. For this
| reason, you may specify a default "cloud" driver here. This driver
| will be bound as the Cloud disk implementation in the container.
|
*/
'cloud' => 's3',
/*
|--------------------------------------------------------------------------
| Filesystem Disks
|--------------------------------------------------------------------------
|
| Here you may configure as many filesystem "disks" as you wish, and you
| may even configure multiple disks of the same driver. Defaults have
| been setup for each driver as an example of the required options.
|
| Supported Drivers: "local", "ftp", "s3", "rackspace"
|
*/
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_KEY'),
'secret' => env('AWS_SECRET'),
'region' => env('AWS_REGION'),
'bucket' => env('AWS_BUCKET'),
],
'upload' => [
'driver' => 'local',
'root' => public_path(),
'visibility' => 'public',
],
],
];
I edited the post with the changes and with my complete method. When trying to upload the error occurs: Driver [] is not supported.
– Marcelo
@Marcelo is an error in the configuration. From a check.
– novic
I took a look but I couldn’t find the error.
– Marcelo
Strange @Marcelo is just like that
– novic
Before everything had given the command php Artisan Storage:link, can this influence anything? I don’t know if this is the best solution but I am trying it because my application uploads and downloads files. On my computer everything works normally, but in hosting the hostgator I can only upload the error. I put the Laravel application before the public_html directory and copied the contents of the public from the Laravel to public_html.
– Marcelo
All files are copied except the symbolic link of Storage, informs that the file already exists. That’s why I’m trying to change the upload directory to the public folder.
– Marcelo
It worked after php Artisan cache:clear and config:cache. Thank you.
– Marcelo
Marcelo, did you solve the public folder problem? I’m having the same problem, it copies the file to Storage but does not point to the public_html folder, could help me?
– Ulisses Gimenes