Cette fonction est la fonction que j'utilise pour stocker une nouvelle société: Cette vue est celle avec le formulaire: p> C'est la route: p> route :: Post ('/ Ajouter', 'CompaniesController @ Store') -> Nom ('Store'); P> Eh bien, que se passe-t-il quand J'essaie de soumettre ce formulaire est que la variable de fichier $ est toujours renvoyée avec NULL: p> essentiellement ce que je veux faire, c'est envoyer le nom de l'image à la base de données et télécharger le image dans mon dossier public. Cela ne se produit pas non plus avec ce code. Lorsque j'efface la partie à partir de $ dossier jusqu'à DD ($ PATH); Il ajoute les valeurs à la base de données, mais l'image n'a pas été téléchargée. P> Toute aide? Merci d'avance. P> p>
4 Réponses :
Essayez de changer de:
public function store(Request $request)
{
$file = $request->file('logo');
$path = '';
if($file) {
$filename = 'company-logo-' . time() . '.' . $file->getClientOriginalExtension();
$path = $file->storeAs('public', $filename);
}
Company::create([
'name' => $request->name,
'email' => $request->email,
'logo' => $path,
'website' => $request->website
]);
return redirect('/company/all');
}
Essayé avant, cela ne me donne aucune erreur mais cela ne télécharge pas le fichier dans mon dossier public. Il écrit simplement le nom du fichier de la base de données.
Le fichier n'est pas dans project_root / stockage / app / public / code>?
Ce chemin que vous avez mentionné est connecté à mon dossier public car j'ai utilisé le lien PHP Artisan Storage: le fichier ne le téléchargera pas.
if (Input::hasFile('logo')) {
$file = Input::file('logo');
$ext = $file->getClientOriginalExtension();
$file_name = 'company-logo-' . time() . ".{$ext}";
$path = base_path().'/public/';
$file->move($path , $file_name);
}
utilisez illuminate \ support \ façades \ entrées; J'ai utilisé cela pour importer une entrée, mais une erreur ne cesse d'apparaître qu'elle n'existe pas.
Tout d'abord, l'attribut sur le formulaire est incorrect, ce qui est ou une alternative Vous pouvez utiliser le code ci-dessous en fonction de vos besoins: p> Veuillez ajouter encype = "mutliPart / form-données" code> et il doit être encype = "multipart / form-données" code " > Utiliser stockage code> en haut du fichier et exécuter < Code> PHP Artisan Stockage: lien code> pour créer un lien symbolique entre le dossier de stockage et le dossier public p> p>
Les fichiers sont déjà liés, la chose est que le fichier $ de demande-> («logo»); retourne null.
@Ali j'ai mis à jour la réponse s'il vous plaît vérifier d'abord les 2 premières lignes de ma réponse
Vérifié. Mais ce n'est pas ça
ENCTYPE = "Multipart / Form-Data Utilisez cet attribut parce que vous erreur qui attribuent cet attribut
Ouais, je voulais dire que je l'ai vérifié et que je l'ai rééquilibré. Ma faute. Mais ça ne marche toujours pas.
Ce que vous voyez quand vous faites dd ($ demande-> fichier ('logo'))
Tout d'abord, vous modifiez encype = "multipart / form-données" code> au lieu de encype = "mutlipart / formulaire-data" code> dans votre formulaire.
Ce n'est pas ça. Veuillez noter que cette condition de l'instruction IF est toujours fausse et $ Demande-> Fichier («logo») renvoie Null. Si je peux le faire ne pas retourner null, cela serait résolu.
Changez-vous EnCTYpe = "Multipart / Form-Data" Code> au lieu de ENCTYPE = "Multipart / Form-Data" code> dans votre formulaire?
Que veux-tu dire? Vous avez écrit deux déclarations identiques.
Vous écrivez multipart code> mais il est faux et il devrait être multipart code>
Aha. Toujours le rien n'améliore
J'ai vérifié votre code à l'aide de DD ($ Demande-> fichier ('logo')). Cela fonctionne et ne renvoie pas NULL.
Seulement ce $ file-> Sheease ("public", nom de fichier $); code> ne fonctionne pas. Il retourne "public / société-logo-1597765018.jpg" code>. Utilisez $ Demande-> fichier ('logo') -> Déplacer (public_path (), $ FileName); code> Ça fonctionne
que "/ entreprise" dans la route est un préfixe que j'hore avec chaque route