J'essaie de télécharger un fichier dans un emplacement temporaire avec Laravel Storage Facade et il me dit que le fichier n'existe pas. J'essaie de télécharger le fichier dans ./storage/app/roofing/projects/{id}/ puis le fichier. Je ne sais pas exactement où je me trompe.
foreach ($files as $file) {
$path = Storage::putFile('contract-assets', new File('../storage/app/roofing/projects/'. $project->id.'/'. $file));
}
Je dois envoyer le fichier après l'avoir stocké sur mon serveur local vers AWS S3 en raison du temps qu'il faut pour essayer de télécharger directement vers S3 et, dans mon cas, cela prend du temps en raison du nombre de fichiers devant être stockés. Pour l'instant, tout ce que je reçois en retour est true dans mon dd(). Quelle pourrait en être la cause ?
if (!empty($request->contract_asset)) {
$files = $request->file('contract_asset');
foreach ($files as $file) {
Storage::putFile(Carbon::now()->toDateString().'/roofing/projects/'. $project->id.'/contract-assets', $file);
}
}
foreach (Storage::files(Carbon::now()->toDateString().'/roofing/projects/'.$project->id.'/contract-assets') as $file) {
dispatch(new ProcessRoofingProjectContractAssets($file, $project));
}
Mon dossier d'emploi.
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$path = Storage::disk('s3')->put('contract-assets', $this->asset, 'public');
dd($path);
$this->project->addContractAsset($path);
}
UPDATE :
Ce sont mes modifications actuelles et je reçois le message d'erreur suivant. Failed because Unable to JSON encode payload. Error code: 5
foreach ($files as $file) {
$returnedStoredFile = Storage::putFile('/roofing/projects/' . $project->id . '/contract-assets/'.Carbon::now()->toDateString(), $file);
dispatch(new ProcessRoofingProjectContractAssets(Storage::get($returnedStoredFile), $project));
}