J'ai un contrôleur de classe avec la méthode 2 (télécharger, séparé). le code fonctionne et n'a pas eu de problème. Ma question est de savoir comment implémenter le stockage de fichiers laravel dans ma méthode séparée, car dans ce cas, je lis et écris le fichier avec fopen
et fwrite
n'utilise pas Storage::GET
et Storage::PUT
.Mettre en œuvre pour le stockage de fichiers Laravel
class UploadController extends Controller
{
public function upload()
{
if(Input::hasFile('file')){
$file = Input::file('file');
$file->move('storage',$file->getClientOriginalName());
$this->separate($file->getClientOriginalName());
return view('layouts.pages.view_upload',['notice'=>$file->getClientOriginalName()." Uploaded"]);
}
}
public function separate($filename){
$file_handle = fopen("../storage/app/public/WMLG2_2017_07_11.log", "r");
//you 'll store your handles here
$targetHandles = [];
while (!feof($file_handle))
{
$line = fgets($file_handle);
if (strpos($line, '[email protected] [WMLG2] >') !== false)
{
$namafileA = explode('> ', $line);
$namafile = str_replace(' ', '_', $namafileA[1]);
$filenameExtension = $namafile . ".txt";
$file = preg_replace('/[^A-Za-z0-9\-_.]/', '', $filenameExtension); // hapus special character kecuali "." dan "_"
}
else
{
//no $file defined, most likely nothing to write yet
if (empty($file))
{
continue;
}
//if its not open, we'll make them open
if (empty($targetHandles[$file]))
{
$targetHandles[$file] = fopen("../storage/app/public/show_command_file/$file", "a");
}
//writing the line to target
fwrite($targetHandles[$file], $line);
}
}
//you should close your handles every time
foreach ($targetHandles as $handle)
{
fclose($handle);
}
fclose($file_handle);
}
}