如何使用ajax将图片网址和图片保存在laravel 5.4中?
问题描述:
我在页面上连接了welcome.blade.php javascript cropbox截断图像。点击按钮后裁剪我得到像字符串的数据:image/png; base64,ivBOrwqnmdIo ............................... .................................................. ........如何使用ajax将图片网址和图片保存在laravel 5.4中?
我写我的功能与阿贾克斯sendAvatar(IMG)发送和增加克利克事件
$('#btnCrop').on('click', function(){
var img = cropper.getDataURL();
sendAvatar(img);
})
接下来的底部我尝试发送到我的web.php与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);
}
});
}
我有场avatar_url模型Avatar.php
class Avatar extends Model
{
protected $fillable=['id','avatar_url'];
}
现在,我在店里web.php尝试图像在我的分贝
但我不知道如何做到这一点。请帮我
我使用laravel 5.4
答
cropper.getDataURL(); < - 所以你需要使用PHP来此数据存储到文件这将返回base_64数据
这里是php代码示例如何做到这一点
为此在您的控制器和存储$徽标名称您数据库
$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);
}
答
在我来说,我用这种方法
在我web.php
Route::post('/getavatar', '[email protected]');
在我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();
}
}
感谢我用这个例子是 –