Umieszczanie pliku w lokalnym prywatnym katalogu bez dostępu przez http użyty do tego Model jest dostępny tutaj Poniższy przykład przedstawia odebranie obrazka ze strony php poprzez formularz.
if (isset($_POST['upload'])) {
$FileStorage = new \Dframe\FileStorage\Storage($this->loadModel('FileStorage/Drivers/DatabaseDriver'));
$put = $FileStorage->put('local', $_FILES['file']['tmp_name'], 'images/path/name.'.$extension);
if ($put['return'] == true) {
exit(json_encode(array('return' => '1', 'response' => 'File Upload OK')));
} elseif($put['return'] == false) {
//I know file exist, try put forced
$put = $FileStorage->put('local', $_FILES['file']['tmp_name'], 'images/path/name.'.$extension, true);
if ($put['return'] == true) {
exit(json_encode(array('return' => '1', 'response' => 'File Upload forced method')));
}
}
exit(json_encode(array('return' => '0', 'response' => 'Error')));
}
W celu odczytania obrazu możemy zrobić to na 2 sposoby. Jeśli plik był wgrywany prywatnego bez dostępu przez http musimy utworzyć kontroller który go nam z tamtąd pobierze i wyświetli. W tym celu mamy poniższy kod.
exit($FileStorage->renderFile('images/path/name/screenshot.jpg', 'local'));
Powyższy kod zwróci nam orginalny plik niezależnie czy jest to .jpg czy .pdf
Biblioteka posiada dodatkową zaletę obróbki w locie obrazka dzięki temu ze można dopisać swój driver możemy obrabiać obrazek w dowolny sposób.
echo $FileStorage->image('images/path/name/screenshot.jpg')->stylist('square')->size('250x250')->display();
Po obróbce zostanie zwrócony link do wyrenderowanego kwadratu o wymiarach 250x250
Drop kasuje nam plik z podanego adaptera, automatycznie jest również wybierany adapter Cache z którego są usuwane wszystkie kopie tego pliku.
echo $FileStorage->drop('local', 'images/path/name/screenshot.jpg');
Edit page (Usage)