Zastanów się nad użyciem wrapperów ( public://, private://itp., Aby uniknąć konfliktów folderów. Skorzystaj z Drupal 7 :))
AyeshK
Wiem, że to działa z image_style_url (uri), ale chcę przekazać go do javascript jako zmienną do dalszego przetwarzania ... dziękuję jednak
Jurudocs
Odpowiedzi:
24
Informacje te są zapisywane w tabeli zmiennych Drupala. Użyj variable_getfunkcji, aby uzyskać te informacje, przekazując nazwę poprawnej zmiennej:
Lokalizacja publicznego systemu plików :variable_get('file_public_path', conf_path() . '/files');
Lokalizacja prywatnego systemu plików :variable_get('file_private_path');
Jeśli chcesz skorzystać z katalogu tymczasowego przesyłania variable_get('file_temporary_path');Jeśli chcesz określić katalog przesyłania specyficzny dla systemu, bez względu na faktyczną konfigurację witryny użyj tej file_directory_tempfunkcji.
variable_get('file_public_path', conf_path() . '/files'); pobierze dla ciebie domyślną ścieżkę na wypadek, gdyby nie została zmodyfikowana lub jawnie ustawiona przez administratora witryny.
hmm w moim przypadku zmienna_get ('ścieżka_publiczna_pliku') jest pusta ... czy muszę ją wywoływać w ramach haka czy coś takiego?
Jurudocs
1
@Jurudocs Zamiast tego użyj tego: variable_get('file_public_path', conf_path() . '/files');Zasadniczo pobiera dla ciebie domyślną ścieżkę na wypadek, gdyby nie została zmodyfikowana lub jawnie ustawiona przez administratora strony.
9ee1
@zhilevan Sprawdź swoje uprawnienia do plików w tym katalogu.
Atomox
Daje to tylko ścieżkę względną, która wydaje się mniej przydatna niż ścieżka bezwzględna. Podoba mi się drupal_realpathponiższe rozwiązanie. Wydaje się bardziej uzasadniony.
Alex Finnarn,
11
Aby uzyskać bezwzględne ścieżki systemu plików, użyj drupal_realpath(Drupal API) zamiast file_create_url:
drupal_realpath('public://');// returns e.g. /var/www/drupal/sites/default/files
drupal_realpath('private://');// returns e.g. /var/www/drupal/sites/default/files_private
public://
,private://
itp., Aby uniknąć konfliktów folderów. Skorzystaj z Drupal 7 :))Odpowiedzi:
Informacje te są zapisywane w tabeli zmiennych Drupala. Użyj
variable_get
funkcji, aby uzyskać te informacje, przekazując nazwę poprawnej zmiennej:variable_get('file_public_path', conf_path() . '/files');
variable_get('file_private_path');
Jeśli chcesz skorzystać z katalogu tymczasowego przesyłania
variable_get('file_temporary_path');
Jeśli chcesz określić katalog przesyłania specyficzny dla systemu, bez względu na faktyczną konfigurację witryny użyj tejfile_directory_temp
funkcji.variable_get('file_public_path', conf_path() . '/files');
pobierze dla ciebie domyślną ścieżkę na wypadek, gdyby nie została zmodyfikowana lub jawnie ustawiona przez administratora witryny.źródło
variable_get('file_public_path', conf_path() . '/files');
Zasadniczo pobiera dla ciebie domyślną ścieżkę na wypadek, gdyby nie została zmodyfikowana lub jawnie ustawiona przez administratora strony.drupal_realpath
poniższe rozwiązanie. Wydaje się bardziej uzasadniony.Aby uzyskać bezwzględne ścieżki systemu plików, użyj
drupal_realpath
(Drupal API) zamiastfile_create_url
:źródło
Możesz również użyć tych funkcji, aby uzyskać poprawny adres URL z względnego identyfikatora użytkownika:
Zwracają ścieżkę do folderów publicznych lub prywatnych.
źródło