我正在尝试将新照片保存在已修改的数据库中,我具有用于裁剪照片的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();
答案 0 :(得分:0)
您可以简单地
$path = Storage::put('images/model', $image_base64);
这将为您创建一个唯一的名称,并将其保存在storage/app
中,而不是公用(这是您要做的,而不是保存在public/
目录本身中)。
答案 1 :(得分:0)
上图显示了回调以获取编辑后的图像。
1)您可以通过对服务器进行ajax调用将该文件保存在服务器的temp文件夹中的某个位置。
2)在保存其他字段期间(POST请求)。您只需将文件从temp文件夹移至images文件夹,然后将文件名移至DB。