mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-19 00:22:15 +00:00
- download multiple files in public folder
- frontend build
This commit is contained in:
@@ -356,6 +356,44 @@ class EditItemsController extends Controller
|
||||
], 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Guest download multiple files via zip
|
||||
*
|
||||
* @param Request $request
|
||||
* @param $token
|
||||
* @return string
|
||||
*/
|
||||
public function guest_zip_multiple_files(Request $request, $token)
|
||||
{
|
||||
// Get shared record
|
||||
$shared = get_shared($token);
|
||||
|
||||
$file_parent_folders = FileManagerFile::whereUserId($shared->user_id)
|
||||
->whereIn('unique_id', $request->input('files'))
|
||||
->get()
|
||||
->pluck('folder_id')
|
||||
->toArray();
|
||||
|
||||
// Check access to requested directory
|
||||
Guardian::check_item_access($file_parent_folders, $shared);
|
||||
|
||||
// Get requested files
|
||||
$files = FileManagerFile::whereUserId($shared->user_id)
|
||||
->whereIn('unique_id', $request->input('files'))
|
||||
->get();
|
||||
|
||||
$zip = Editor::zip_files($files, $shared);
|
||||
|
||||
// Get file
|
||||
return response([
|
||||
'url' => route('zip_public', [
|
||||
'id' => $zip->id,
|
||||
'token' => $shared->token,
|
||||
]),
|
||||
'name' => $zip->basename,
|
||||
], 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Move item for authenticated master|editor user
|
||||
*
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\FileFunctions;
|
||||
use App\Http\Requests\Share\CreateShareRequest;
|
||||
use App\Http\Requests\Share\UpdateShareRequest;
|
||||
use App\Http\Resources\ShareResource;
|
||||
use App\Zip;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -95,16 +96,24 @@ class ShareController extends Controller
|
||||
*/
|
||||
public function destroy(Request $request)
|
||||
{
|
||||
foreach($request->input('folders') as $tokens) {
|
||||
foreach($request->input('tokens') as $folder) {
|
||||
|
||||
// Get sharing record
|
||||
$shared = Share::where('token', $tokens['token'])
|
||||
Share::where('token', $folder['token'])
|
||||
->where('user_id', Auth::id())
|
||||
->firstOrFail();
|
||||
->firstOrFail()
|
||||
->delete();
|
||||
|
||||
// Delete shared record
|
||||
$shared->delete();
|
||||
// Get zip record
|
||||
$zip = Zip::where('shared_token', $folder['token'])
|
||||
->where('user_id', Auth::id())
|
||||
->first();
|
||||
|
||||
if ($zip) {
|
||||
$zip->delete();
|
||||
}
|
||||
}
|
||||
|
||||
// Done
|
||||
return response('Done!', 204);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user