Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

185
Vistas
¿Cómo guardar URL de imágenes e imágenes en laravel 5.4 con ajax?

Me he conectado en la página welcome.blade.php javascript cropbox que trunca la imagen. Después de hacer clic en el botón Recortar, obtengo la cadena como data:image/png;base64,ivBOrwqnmdIo................................. .................................................... ........

Escribo mi función para enviar con ajax sendAvatar (img) y la agrego al final del evento klick

 $('#btnCrop').on('click', function(){ var img = cropper.getDataURL(); sendAvatar(img); })

Luego trato de enviar a mi web.php con ajax

 function sendAvatar(img){ var url = '{{ URL::to('getavatar') }}'; var token = '{!! csrf_token() !!}'; $.ajax({ method: 'POST', url: url, data: {_token: token, img: img}, success: function(){ alert(img); } }); }

Tengo un modelo Avatar.php con campo avatar_url

 class Avatar extends Model { protected $fillable=['id','avatar_url']; }

Ahora intento en mi web.php almacenar la imagen en mi base de datos

Pero no sé cómo hacer esto. por favor, ayúdame

estoy usando laravel 5.4

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En mi caso utilicé este enfoque.

En mi web.php

 Route::post('/getavatar', 'AvatarController@saveAvatar');

En mi AvatarController

 use App\Avatar; use Auth; class AvatarController extends Controller { public function saveAvatar(Request $request) { $data = $request->get('img'); list($type, $data) = explode(';', $data); list(, $data) = explode(',', $data); $data = base64_decode($data); $avatar_owner = Auth::user()->id; $avatarName = rand(000000000, 999999999) . '-' . $avatar_owner .'.png'; $avatar_uri = file_put_contents(public_path() . '/images/' . $avatarName, $data); $avatar = new Avatar(); $avatar->avatar_url = $avatarName; $avatar->save(); }

}

over 4 years ago · Santiago Trujillo Denunciar

0

El campo img que envía al servidor está en formato de cadena y codificado como base64 . debe convertir la cadena base64 a formato binario a través de un código php como este ; luego almacene el archivo binario y luego coloque la ruta del archivo binario en la base de datos.

over 4 years ago · Santiago Trujillo Denunciar

0

recortador.getDataURL(); <-- esto devuelve datos base_64 , por lo que debe almacenar estos datos en un archivo usando php

aquí hay una muestra de código php de cómo hacer esto

haga esto en su controlador y almacene $ logoName en su base de datos

 $logoName = null; if( isset($_POST['imagebase64']) and strlen($_POST['imagebase64']) > 700 ) { $data = $_POST['imagebase64']; list($type, $data) = explode(';', $data); list(, $data) = explode(',', $data); $data = base64_decode($data); $logoName = rand(000000000, 999999999) . '.png'; file_put_contents(public_path() . '/some_path/' . $logoName, $data); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda