seperate image saving to directory

This commit is contained in:
franknstayn
2021-07-22 19:32:49 +08:00
parent c17f709ebf
commit 0d57d88641
7 changed files with 94 additions and 14 deletions

View File

@@ -7,9 +7,8 @@ use Illuminate\Http\Request;
use App\Models\designer\DesignerModel; use App\Models\designer\DesignerModel;
use App\Models\teamstore\TeamStoreModel; use App\Models\teamstore\TeamStoreModel;
use App\Models\MainModel; use App\Models\MainModel;
use Config; use Illuminate\Support\Facades\Auth;
Use Auth; use Illuminate\Support\Facades\Storage;
use DB;
class DesignerController extends Controller { class DesignerController extends Controller {
@@ -958,4 +957,21 @@ class DesignerController extends Controller {
return view("designer.buy_form")->with('jersey_sizes', $jersey_sizes) return view("designer.buy_form")->with('jersey_sizes', $jersey_sizes)
->with('shorts_sizes', $shorts_sizes); ->with('shorts_sizes', $shorts_sizes);
} }
public function saveBase64Images(Request $request) {
$post = $request->all();
@list($type, $file_data) = explode(';', $post['base64_image']);
$extension = explode('/', mime_content_type($post['base64_image']))[1];
@list(, $file_data) = explode(',', $file_data);
$imageName = $post['side'] . '_' . $post['image_count'] . '_' . microtime(true) . '_' . Auth::user()->id . '.'.$extension;
$filesystem = Storage::disk('sftp');
$filesystem->getDriver()->getAdapter()->setDirectoryPerm(0755);
$filesystem->put('/merchbay/designer-images/' . $imageName, base64_decode($file_data));
// Storage::disk('uploads_local')->put($imageName, base64_decode($file_data));
return response()->json(array(
'success' => true,
'url' => config('site_config.uploads') . 'designer-images/' . $imageName
));
}
} }

View File

@@ -948,15 +948,18 @@ class UserController extends Controller {
// var_dump($data); // var_dump($data);
$res = $UserModel->updateTeamstore($store_id, $data); $UserModel->updateTeamstore($store_id, $data);
// var_dump($res); // var_dump($res);
// if($res){ // if($res){
$filesystem = Storage::disk('sftp');
$filesystem->getDriver()->getAdapter()->setDirectoryPerm(0755);
if($request->file('store_logo') != null){ if($request->file('store_logo') != null){
Storage::disk('uploads')->put('/teamstore/'. $orig_store_url . '/' . $store_logo_name, fopen($request->file('store_logo'), 'r+')); $filesystem->put('/merchbay/teamstore/'. $orig_store_url . '/' . $store_logo_name, fopen($request->file('store_logo'), 'r+'));
} }
if($request->file('store_banner') != null){ if($request->file('store_banner') != null){
Storage::disk('uploads')->put('/teamstore/'. $orig_store_url . '/' . $store_banner_name, fopen($request->file('store_banner'), 'r+')); $filesystem->put('/merchbay/teamstore/'. $orig_store_url . '/' . $store_banner_name, fopen($request->file('store_banner'), 'r+'));
} }
return response()->json(array( return response()->json(array(

View File

@@ -70,6 +70,8 @@ Route::post('/designer/edit/a/edit-set-pattern', 'designer\DesignerController@ed
Route::get('/designer/a/tab-clipart-content', 'designer\DesignerController@tabClipartContent'); Route::get('/designer/a/tab-clipart-content', 'designer\DesignerController@tabClipartContent');
Route::post('/designer/a/save-design-details', 'designer\DesignerController@saveDesignDetails'); Route::post('/designer/a/save-design-details', 'designer\DesignerController@saveDesignDetails');
Route::post('/designer/a/save-images', 'designer\DesignerController@saveBase64Images');
// teamstore // teamstore
// Route::get('/', 'teamstore\TeamStoreController@login'); // old // Route::get('/', 'teamstore\TeamStoreController@login'); // old
Route::get('/', 'teamstore\TeamStoreController@storelist'); // old Route::get('/', 'teamstore\TeamStoreController@storelist'); // old
@@ -196,3 +198,7 @@ Route::group(array('middleware' => ['isAuthorized', 'cors'], 'prefix' => 'api'),
Route::get('order-status', 'ApiController@getOrderStatus'); Route::get('order-status', 'ApiController@getOrderStatus');
Route::get('steps', 'ApiController@getSteps'); Route::get('steps', 'ApiController@getSteps');
}); });
Route::get('vue/designer', function() {
return view('designer.vue_designer');
});

View File

@@ -1,9 +1,10 @@
<?php namespace App\Providers; <?php namespace App\Providers;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Storage; use Illuminate\Support\Facades\Storage;
use League\Flysystem\Filesystem; use League\Flysystem\Filesystem;
use League\Flysystem\Sftp\SftpAdapter; use League\Flysystem\Sftp\SftpAdapter;
use Illuminate\Support\Facades\Blade;
class AppServiceProvider extends ServiceProvider { class AppServiceProvider extends ServiceProvider {
@@ -15,7 +16,7 @@ class AppServiceProvider extends ServiceProvider {
public function boot() public function boot()
{ {
// //
\Blade::extend(function($value) { Blade::extend(function($value) {
return preg_replace('/\@define(.+)/', '<?php ${1}; ?>', $value); return preg_replace('/\@define(.+)/', '<?php ${1}; ?>', $value);
}); });

View File

@@ -103,6 +103,11 @@ return [
'root' => '/var/www/html/images/merchbay', 'root' => '/var/www/html/images/merchbay',
'timeout' => 10, 'timeout' => 10,
], ],
'uploads_local' => [
'driver' => 'local',
'root' => 'C:/wamp64/www/uploads',
],
], ],
]; ];

View File

@@ -1113,9 +1113,15 @@
var type = SideAndPath[i]['Type']; var type = SideAndPath[i]['Type'];
var contentName = "content_" + sideName; var contentName = "content_" + sideName;
//console.log(contentName); var objects = window['canvas_' + type + '_' + sideName].getObjects();
objects.forEach((obj, index) => {
var newUrl = saveImages(obj._originalElement.currentSrc, sideName, index);
obj._originalElement.src = newUrl;
});
window['canvas_' + type + '_' + sideName].renderAll();
contentName = JSON.stringify(window['canvas_' + type + '_' + sideName].toObject(['idNumber', 'id'])); // = new fabric.Canvas(canvasName); contentName = JSON.stringify(window['canvas_' + type + '_' + sideName].toObject(['idNumber', 'id'])); // = new fabric.Canvas(canvasName);
//console.log(contentName);
var inputName = "json_" + sideName; var inputName = "json_" + sideName;
var hiddenFieldContentDesign = "field_" + sideName; var hiddenFieldContentDesign = "field_" + sideName;
@@ -1146,7 +1152,7 @@
newformSaveDesign.appendChild(hiddenField_token); newformSaveDesign.appendChild(hiddenField_token);
document.body.appendChild(newformSaveDesign); document.body.appendChild(newformSaveDesign);
//console.log(exportSVG()); // console.log(exportSVG());
newformSaveDesign.submit(); newformSaveDesign.submit();
} }
@@ -1269,6 +1275,37 @@
// return false; // return false;
} }
function saveImages(base64Image, sideName, image_count){
var newUrl;
$.ajax({ //create an ajax request to load_page.php
type: "POST",
url: "{{url('designer/a/save-images')}}",
async: false,
dataType : 'json',
data: {
base64_image : base64Image,
side: sideName,
image_count: image_count
},
beforeSend:function(xhr){
var token = $('meta[name="csrf_token"]').attr('content');
if (token) {
return xhr.setRequestHeader('X-CSRF-TOKEN', token);
}
xhr.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest');
},
success: function(response){
if(response.success){
newUrl = response.url;
}
}
});
return newUrl;
}
// end design saving // end design saving
// 1ST TAB <---#################################### // 1ST TAB <---####################################

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
</html>