Skocz do zawartości

Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zdjęcie

Obsługa plików

3.3.2

Najlepsza odpowiedź Kamil, 19 sierpnia 2014 - 06:01

Najlepiej, jeśli użyjesz klasy File, która automatycznie zsynchronizuje bazę danych:

 

$objFile = new \File('origin.txt');
$objFile->renameTo('tmp/new.txt');
 
$objFile->delete();
Przejdź do postu »


  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1
Mozan

Mozan

    Nowy na forum

  • Zarejestrowani
  • Pip
  • 6 postów

Hejka,

 

Jestem delikatnie mówiąc sfrustrowany. A może - de facto - bardziej zmęczony.

Anyway, pytanie wydaję mi się z serii banalnych:

 

Contao od chyba v3.x - nie wiem dokładnie której wersji - "wprowadziło" według mnie strasznie upierdliwy "feature":

  • nazywam to: "będę za Ciebie debilu developer" - pamiętał gdzie pozwoliłeś wgrać pliki...

Cóż - wygląda na to, że nie pasuję do tej koncepcji, stąd pytania...

 

W ramach v3.3.x poszukuję 2 (słownie dwóch) metod które pozwolą mi wykonać poniższe operacje na _PLIKACH_, tak żeby został po takowych ślad w _DB_:

  • delete()
  • rename()
$files = \Files::getInstance();
$sourceFile = "moveMe.blah";
$deleteMe = "yesPlease.blah";
// Just in case 
$destName = $sourceFile . "_testXXXXXX"; // obvious

$destDir = "intoMePlease";

// Jak te dwa wywołania zamienić żeby Contao wiedziało, że faktycznie przeniosłem plik, skasowałem
$files->rename($sourceFile, $destDir . '/' . $destName);
$files->delete($deleteMe);

Kod powyżej - wiem, działa, ale żadnego śladu w _DB_.

$files->blah() to wrappers do adekwatnych funkcji PHP.

 

Pytam się więc - jak:

- skasować plik, 

- jak zmienić mu nazwę,

Tak żeby Contao odnotowało to zdarzenie w _DB_.

 

Zwracam uwagę na jeden istotny szczegół - nie próbuję wykonywać żadnych operacji na katalogach (wiem \Folder).

 

Jak zwykle - z góry pięknie dziękuje za wskazówki :)

 

 


  • 0

#2
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
✓  Najlepsza odpowiedź

Najlepiej, jeśli użyjesz klasy File, która automatycznie zsynchronizuje bazę danych:

 

$objFile = new \File('origin.txt');
$objFile->renameTo('tmp/new.txt');
 
$objFile->delete();

  • 1

Codefog - Contao web development


#3
Mozan

Mozan

    Nowy na forum

  • Zarejestrowani
  • Pip
  • 6 postów

Jak udało mi się o \File zapomnieć?

Zdecydowanie zmęczony już byłem.

 

Dzięki :)

 


  • 0





Również z jednym lub większą ilością słów kluczowych: 3.3.2

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych użytkowników