Moduły mogą próbować tworzyć pliki tymczasowe w dowolnym miejscu na stronie drupal, ale powiedzie się to tylko wtedy, gdy pozwala na to konfiguracja serwera. Patrz: drupal.org/node/244924
sierpień
Odpowiedzi:
16
Pliki są tworzone w katalogu, którego nazwa jest zwracana z file_directory_temp (), który zwraca:
Wartość zmiennej Drupal „file_temporary_path”, która jest ustawiana ze strony ustawień admin / config / media / file-system (Drupal 7) lub admin / settings / file-system (Drupal 6).
Jeśli ta zmienna Drupal nie jest ustawiona, funkcja sprawdza jeden z następujących katalogów; jeśli jeden z tych katalogów istnieje, to jest zwracany (i używany).
katalog zwrócił z ini_get('upload_tmp_dir')
w systemie Windows katalogi „c: \ windows \ temp” i „c: \ winnt \ temp.”
w systemach operacyjnych innych niż Windows, katalog „/ tmp”.
w PHP w wersji 5.2.1 lub wyższej, katalog zwrócony przez sys_get_temp_dir().
Jeśli zmienna „file_temporary_path” nie jest ustawiona, a katalogi wymienione w poprzednim punkcie nie istnieją lub nie są zapisywalne, funkcja używa wartości zmiennej Drupal „file_public_path”; domyślnie ten katalog ma wartość conf_path() . '/files'„katalogu” zawartego w katalogu zawierającym plik setting.php używany dla strony Drupal.
Funkcja ustawia zmienną „file_temporary_path” na znaleziony katalog.
O ile mi wiadomo, każdy moduł otwiera pliki tymczasowe przy użyciu ścieżki zaczynającej się od „tymczasowy: //” (dostępny tylko w Drupal 7 i wyższych) lub używa file_directory_temp(). Katalog zwrócony z file_directory_temp()może zmieniać się z systemu na system, ale moduły zawsze używają tego katalogu.
Moduły Drupal nie mają uprawnień do napisania katalogu zawierającego moduły; dość trudno moduł używa tego katalogu do tworzenia plików tymczasowych. Jeśli znajdziesz moduł korzystający z katalogu zawierającego moduły (lub dowolnego podkatalogu tego katalogu), zgłoś to jako błąd.
Czy mówisz, że moduł może utworzyć plik tymczasowy w dowolnym miejscu na stronie drupal? Czy można go również tworzyć w katalogu głównym / motywach root / modułów itp.?
AgA
Tak, moduły mogą tworzyć pliki tymczasowe w dowolnym miejscu. Zazwyczaj przechowują je w jednym folderze, podobnie jak narzędzia. Z mojego doświadczenia wynika, że moduły tworzące własny katalog tymczasowy są rzadkie. Większość modułów korzysta z domyślnego katalogu tymczasowego, o którym mówi Chris.
iStryker
@iStryker Dzisiaj zobaczyłem błąd w tej sekcji raportów / statusu na mojej stronie, mówiąc: „katalog plików nie jest chroniony” i zasugerowałem drupal.org/forum/newsletters/... utworzenie .htaccess w katalogu plików, a także umieszczenie „Odmów z wszystko ”w .htaccess znaleziono w katalogu plików tymczasowych w celu zapobiegania wykonywaniu kodu. Jestem zdezorientowany. Czy jest to folder „tmp”, gdzieś lub każdy moduł ma swój własny folder? Czy muszę umieścić plik .htaccess w każdym folderze?
Odpowiedzi:
Pliki są tworzone w katalogu, którego nazwa jest zwracana z file_directory_temp (), który zwraca:
Wartość zmiennej Drupal „file_temporary_path”, która jest ustawiana ze strony ustawień admin / config / media / file-system (Drupal 7) lub admin / settings / file-system (Drupal 6).
Jeśli ta zmienna Drupal nie jest ustawiona, funkcja sprawdza jeden z następujących katalogów; jeśli jeden z tych katalogów istnieje, to jest zwracany (i używany).
ini_get('upload_tmp_dir')
sys_get_temp_dir()
.Jeśli zmienna „file_temporary_path” nie jest ustawiona, a katalogi wymienione w poprzednim punkcie nie istnieją lub nie są zapisywalne, funkcja używa wartości zmiennej Drupal „file_public_path”; domyślnie ten katalog ma wartość
conf_path() . '/files'
„katalogu” zawartego w katalogu zawierającym plik setting.php używany dla strony Drupal.Funkcja ustawia zmienną „file_temporary_path” na znaleziony katalog.
O ile mi wiadomo, każdy moduł otwiera pliki tymczasowe przy użyciu ścieżki zaczynającej się od „tymczasowy: //” (dostępny tylko w Drupal 7 i wyższych) lub używa
file_directory_temp()
. Katalog zwrócony zfile_directory_temp()
może zmieniać się z systemu na system, ale moduły zawsze używają tego katalogu.Moduły Drupal nie mają uprawnień do napisania katalogu zawierającego moduły; dość trudno moduł używa tego katalogu do tworzenia plików tymczasowych. Jeśli znajdziesz moduł korzystający z katalogu zawierającego moduły (lub dowolnego podkatalogu tego katalogu), zgłoś to jako błąd.
źródło
file_directory_temp()
zdefiniowano również w Drupal 6, a kod funkcji nie zmienia się, przechodząc z Drupal 6 do Drupal 7.Strona ustawień w admin / settings / file-system zawiera ustawienia katalogu używanego do plików tymczasowych.
Niektóre moduły mogą wybrać inny katalog dla plików tymczasowych. Nie ma standardowej lokalizacji folderu.
Na przykład moduł ctools utworzy tymczasowe pliki buforowane w katalogu / sites / default / files / ctools. Więc może się różnić.
źródło