Preview: WucUserFilesImport.php
Size: 4.78 KB
/var/www/multi-event-cfp.bitkit.dk/httpdocs/app/Imports/WucUserFilesImport.php
<?php
namespace App\Imports;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use App\Models\User;
use Maatwebsite\Excel\Concerns\SkipsEmptyRows;
use App\Models\File;
use Illuminate\Support\Facades\Storage;
class WucUserFilesImport implements ToModel, WithHeadingRow, SkipsEmptyRows
{
/**
* @param array $row
*
* @return User|null
*/
public function model(array $row)
{
//our user
$ourUser = User::whereEmail($row['email'])->first();
if ($row['avatar']) {
if (Storage::exists('wuc/public/media/' . $row['id'] . '/' . $row['avatar'])) {
$files = storage_path('app/wuc/public/media/' . $row['id'] . '/' . $row['avatar']);
//saving file
$file = new File();
$file->model_id = $ourUser->id;
$file->model = 'App\Models\User';
$file->filename = $row['avatar'];
$file->save_name = 'avatar' . '.' . pathinfo($row['avatar'], PATHINFO_EXTENSION);
$file->extension = pathinfo($row['avatar'], PATHINFO_EXTENSION);
$info = getimagesize($files);
$file->type = isset($info['mime']) ? $info['mime'] : '';
$file->context = 'user.avatar';
$file->public = 1;
$file->filepath = 'public/media/users/' . $ourUser->id . '/images/';
$file->public_path = 'storage/media/users/' . $ourUser->id . '/images/' . $file->save_name;
$file->created_at = $row['created_at'];
$file->updated_at = $row['updated_at'];
$file->save();
//file stored to session
session()->push('userAvatarFiles', $file);
//put file to our project storage path
Storage::putFileAs('public/media/users/' . $ourUser->id . '/images/', $files, $file->save_name, 'public');
//file contents for user avatar field
$fileContents = json_decode(json_encode(array(
'filename' => $file->filename,
'filepath' => $file->filepath,
'extension' => $file->extension,
'file_id' => $file->id,
'public_path' => $file->public_path,
'save_name' => $file->save_name,
'value' => $file->public_path,
)), true, JSON_UNESCAPED_SLASHES);
$ourUser->avatar = $fileContents;
$ourUser->save();
}
}
if ($row['company_logo']) {
if (Storage::exists('wuc/public/media/' . $row['id'] . '/' . $row['company_logo'])) {
$files = storage_path('app/wuc/public/media/' . $row['id'] . '/' . $row['company_logo']);
//saving file
$file = new File();
$file->model_id = $ourUser->id;
$file->model = 'App\Models\User';
$file->filename = $row['company_logo'];
$file->save_name = 'company_logo' . '.' . pathinfo($row['company_logo'], PATHINFO_EXTENSION);
$file->extension = pathinfo($row['company_logo'], PATHINFO_EXTENSION);
$info = getimagesize($files);
$file->type = isset($info['mime']) ? $info['mime'] : '';
$file->context = 'user.company_logo';
$file->public = 1;
$file->filepath = 'public/media/users/' . $ourUser->id . '/images/';
$file->public_path = 'storage/media/users/' . $ourUser->id . '/images/' . $file->save_name;
$file->created_at = $row['created_at'];
$file->updated_at = $row['updated_at'];
$file->save();
//file stored to session
session()->push('userCompanyLogoFiles', $file);
//put file to our project storage path
Storage::putFileAs('public/media/users/' . $ourUser->id . '/images/', $files, $file->save_name, 'public');
//file contents for user company_logo field
$fileContents = json_decode(json_encode(array(
'filename' => $file->filename,
'filepath' => $file->filepath,
'extension' => $file->extension,
'file_id' => $file->id,
'public_path' => $file->public_path,
'save_name' => $file->save_name,
'value' => $file->public_path,
)), true, JSON_UNESCAPED_SLASHES);
$ourUser->company_logo = $fileContents;
$ourUser->save();
}
}
var_dump('success');
}
/**
* Headings
*/
public function headingRow(): int
{
return 1;
}
}
Directory Contents
Dirs: 1 × Files: 4