<?php
namespace App\Controllers;
use App\Controllers\BaseController;
use App\Models\FileUploadModel;
use ZipArchive;
class FileUpload extends BaseController
{
public function index()
{
$fileUploadModel = new FileUploadModel();
return view('file-upload', ['fileUploads' => $fileUploadModel->orderBy('created_at', 'asc')->findAll()]);
}
public function multipleUpload(){
$fileUploadModel = new FileUploadModel();
$filesUploaded = 0;
if($this->request->getFileMultiple('fileuploads')){
$error ='';
$zip = new ZipArchive();
$files = $this->request->getFileMultiple('fileuploads');
//create name zip file
$zip_name = getcwd() . '/public/uploads/Parking_' . date('d_m_Y_H_i').'_BX.zip';
if ($zip->open($zip_name, ZipArchive::CREATE) !== TRUE){
$error.= "Sorry ZIP creation is not working currently.<br/>";
}
$getName = 'Parking'.'_'.date('d_m_Y_H_i').'_BX.zip';
foreach ($files as $file){
if ($file->isValid() && ! $file->hasMoved()){
$zip->addFromString($file->getName(), file_get_contents( $file->getTempName()));
$data = [
'filename' => $getName,
'filepath' => $getName,
'type' => 'zip'
];
$filesUploaded++;
}
}
if(!$filesUploaded){
return redirect()->back()->with('error', 'Choose files to upload.');
}else{
$fileUploadModel->save($data);
return redirect()->back()->with('success', $filesUploaded . ' File/s uploaded successfully.');
$zip->close();
}
}
}
}