Je souhaite télécharger l'image dans un dossier public et une base de données dans laravel mais je suis confronté à un problème, L'image est téléchargée dans le dossier public mais l'image n'est pas enregistrée dans la base de données. Quelqu'un peut-il m'aider à dire où ça va mal? Voici mon code.
controller
Route::get('DashBoard','AdminController@DashBoard');
Route::get('Clients','AdminController@clients');
Route::post('/ajax_upload/action','AdminController@clientaction')->name('ajaxupload.action');
Route↑
public function clientaction(Request $request)
{
$validation = validator::make($request->all(),[
'select_file' =>'required|image|mimes:jpeg,png,jpg,gif|max:2048'
]);
if($validation->passes())
{
$image = $request->file('select_file');
$new_name = rand() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('images'), $new_name);
return response()->json([
'message' => 'Image Upload Successfully',
'class_name' => 'alert-success'
]);
}
else
{
return response()->json([
'message' => $validation->errors()->all(),
'class_name' => 'alert-danger'
]);
}
DB::table('logo-clients')->insert([
'select_file'=> $new_name
]);
}
3 Réponses :
parce que vous renvoyez déjà une valeur, cela signifie que l'action après cela est inutile
il vous suffit donc de déplacer ceci
$image->move(public_path('images'), $new_name);
//move it into here
sous cette partie
DB::table('logo-clients')->insert([
'select_file'=> $new_name
]);
parce que vous retournez déjà lorsque la validation est réussie. s'il vous plaît regarder votre code que vous avez retourné deux fois sur validation réussie et échoué je vous suggère de déplacer votre code lors de son enregistrement dans la base de données avant de renvoyer le response () -> json () lorsque la validation est passée
déplacez DB :: table ('logo-clients') -> insert () ce bloc de code au-dessus de la return response () -> json () à l'intérieur du $ validation-> passé () if instruction
Votre fonction revient après avoir déplacé le fichier dans un dossier. donc le code d'insertion de base de données n'est pas exécuté. votre fonction devrait être comme
public function clientaction(Request $request) {
$validation = validator::make($request->all(),[
'select_file' =>'required|image|mimes:jpeg,png,jpg,gif|max:2048'
]);
if($validation->passes())
{
$image = $request->file('select_file');
$new_name = rand() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('images'), $new_name);
}
else
{
return response()->json([
'message' => $validation->errors()->all(),
'class_name' => 'alert-danger'
]);
}
DB::table('logo-clients')->insert([
'select_file'=> $new_name ]);
return response()->json([
'message' => 'Image Upload Successfully',
'class_name' => 'alert-success'
]);
}
Zubair, pouvez-vous s'il vous plaît l'erreur ou les journaux (projet / stockage / logs / laravel **. Log) pour cette fonction? Merci.
actuellement, je n'ai pas d'erreur (projet / stockage / logs / laravel **. log) dans ce dossier, seule l'image ne se télécharge pas dans la base de données merci