如何在Laravel中保存修改后的图像

时间:2019-03-28 10:46:44

标签: javascript php laravel

我正在尝试将新照片保存在已修改的数据库中,我具有用于裁剪照片的javascript(darkroomjs),但是新照片未保存在数据库中。我想保存新照片而不是原始照片。

$profile_images = $request['profilefiles'];
$profile_images = explode(";;", $profile_images);
array_shift($profile_images);
$image = "";

foreach ($profile_images as $key => $value) {
    $image_parts = explode(";base64,", $value);
    $image_type_aux = explode("image/", $image_parts[0]);
    $image_type = $image_type_aux[1];
    $image_base64 = base64_decode($image_parts[1]);

    $destinationPath = public_path('images/model/');
    $hardPath = str_random(10) . '.' . $image_type;
    $filename = $destinationPath . $hardPath;
    file_put_contents($filename, $image_base64);

    $image = $hardPath;
}

$model->title = $request['title'];
$model->slug = Slugify::slugify($request['title']);
$model->phone = $request['phone'];
$model->external_link = $request['external_link'];
$model->email = $request['email'];
$model->description = $request['description'];
$model->category = $request['category'];
$model->instagram = $request['instagram'];
$model->category_id = $request['category_id'];
$model->badges_id = $request['badges_id'];
$model->height = $request['height'];
$model->boost = $request['boost'];
$model->waist = $request['waist'];
$model->hips = $request['hips'];
$model->shoes = $request['shoes'];
$model->hair = $request['hair'];
$model->eyes = $request['eyes'];
$model->dress = $request['dress'];
$model->publish = $publish;
$model->age = date('Y-m-d', strtotime($request['dob']));
$model->metatitle = $request['title'];
$model->metadescription = substr(strip_tags($request['description']), 0, 160);

if ($image != "") {
    var_dump($image);
    $model->image = $image;
}
$model->upload_pdf = $upload_pdf;
$model->save();

2 个答案:

答案 0 :(得分:0)

您可以简单地

$path = Storage::put('images/model', $image_base64);

这将为您创建一个唯一的名称,并将其保存在storage/app中,而不是公用(这是您要做的,而不是保存在public/目录本身中)。

答案 1 :(得分:0)

enter image description here

上图显示了回调以获取编辑后的图像。

1)您可以通过对服务器进行ajax调用将该文件保存在服务器的temp文件夹中的某个位置。

2)在保存其他字段期间(POST请求)。您只需将文件从temp文件夹移至images文件夹,然后将文件名移至DB。

Ref:https://github.com/MattKetmo/darkroomjs