PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Wednesday, November 16, 2022

[FIXED] How I upload an image on laravel 6?

 November 16, 2022     file-upload, image, laravel-6, php, upload     No comments   

Issue

im trying to edit an image on laravel 6, but but it does not advance to next view, stays on the form view.

I have seen many tutorials of laravel 5.8 and 6. I can't make it work in any way

This is de controller:

 public function update(Request $request, $id)
{


    $validator = $request->validate([
       'titulo' => 'required | max:50', //campo obligatorio y máximo 50 caracteres
       'contenido' => 'required | max:150', 
       'imagen' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:4096',
    ]);

     $image_name = time().'.'.$request->imagen->getClientOriginalExtension();
     $request->image->move(public_path('images'), $image_name);


     $datos = array(
        'titulo' => $request->titulo,
        'contenido' => $request->contenido,
        'imagen' => $image_name,
    );

    Noticia::whereId($id)->update($datos);


    return redirect('/mostrar');
}

THis is Web.php file:

Route::get('/actualizar/{id}', 'crearNoticiaController@update')->name('actualizar');
Route::get('/editar/{id}', 'crearNoticiaController@edit')->name('editar');

this is form file:

<div class="subir-imagen">
    <form method="get" action="{{ route('actualizar', $noticia->id) }}"  enctype="multipart/form-data">
        @csrf   
        <div class="crear-titulo">
            <input class="titulo" type="text" name="titulo" placeholder="Escriba el titulo" value="{{$noticia->titulo}}">
        </div>

        <div class="crear-contenido">
            <textarea  class="ckeditor" name="contenido" placeholder="Escriba el contenido" >
                {{$noticia->contenido}}
            </textarea>
        </div>

        <table border="2">
            <tr>
                <td><img src="{{URL::to('/')}}/images/{{$noticia->imagen}}" alt="imagen" width="250" align="left"/></td>
            </tr>
        </table>



        <div class="form-group">
            <div class="col-md-6">
                <input type="file" class="form-control" name="imagen" />
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-6 col-md-offset-4">
                <input type="submit" class="btn btn-primary" value="Enviar" id="btn-enviar" />
            </div>
        </div>
    </form>
</div>

Thnaks for help


Solution

I've solved with this way:

In web.php I put patch instead get

Route::patch('/actualizar/{id}', 'crearNoticiaController@update')->name('actualizar');

In the edit blade I put: @method('PATCH')

And this is the update in the controller:

 public function update(Request $request, $id)
{


    $noticia = Noticia::findOrFail($id);


    $noticia->titulo = $request->get('titulo'); 
    $noticia->contenido = $request->get('contenido');
    $noticia->imagen = $request->file('imagen');
    $validator = $request->validate([
       'imagen' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:4096',
    ]);
    $imageName = time().'.'.request()->imagen->getClientOriginalExtension();
    request()->imagen->move(public_path('images'), $imageName);
    $noticia->imagen = $imageName;

    $noticia->update();

    return redirect('/mostrar'); //Redirigimos a la la vista para mostrar las noticias 


}


Answered By - Raúl Medina
Answer Checked By - Mildred Charles (PHPFixing Admin)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing