0
votes

Laravel Image Télécharger sur la base de données

Cette fonction est la fonction que j'utilise pour stocker une nouvelle société: xxx

Cette vue est celle avec le formulaire: xxx

C'est la route:

route :: Post ('/ Ajouter', 'CompaniesController @ Store') -> Nom ('Store');

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: xxx

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.

Toute aide? Merci d'avance.


1 commentaires

que "/ entreprise" dans la route est un préfixe que j'hore avec chaque route


4 Réponses :


0
votes

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');
}


3 commentaires

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 / ?


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.



0
votes
  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);
            }

1 commentaires

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.



0
votes

Tout d'abord, l'attribut sur le formulaire est incorrect, ce qui est encype = "mutliPart / form-données" et il doit être encype = "multipart / form-données"

ou une alternative Vous pouvez utiliser le code ci-dessous en fonction de vos besoins: xxx

Veuillez ajouter Utiliser stockage en haut du fichier et exécuter < Code> PHP Artisan Stockage: lien pour créer un lien symbolique entre le dossier de stockage et le dossier public


6 commentaires

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'))



0
votes

Tout d'abord, vous modifiez encype = "multipart / form-données" au lieu de encype = "mutlipart / formulaire-data" dans votre formulaire. Mettez ensuite ce code à votre contrôleur xxx


7 commentaires

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" au lieu de ENCTYPE = "Multipart / Form-Data" dans votre formulaire?


Que veux-tu dire? Vous avez écrit deux déclarations identiques.


Vous écrivez multipart mais il est faux et il devrait être multipart


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 $); ne fonctionne pas. Il retourne "public / société-logo-1597765018.jpg" . Utilisez $ Demande-> fichier ('logo') -> Déplacer (public_path (), $ FileName); Ça fonctionne