Nie mogę przesłać zdjęć w panelu administracyjnym Magento, pojawia się błąd „Folder docelowy nie jest zapisywalny lub nie istnieje”. Ostatnio przeniesiono wszystkie pliki z jednego hosta na inny. Jakieś rozwiązanie tego?
Nie mogę przesłać zdjęć w panelu administracyjnym Magento, pojawia się błąd „Folder docelowy nie jest zapisywalny lub nie istnieje”. Ostatnio przeniesiono wszystkie pliki z jednego hosta na inny. Jakieś rozwiązanie tego?
Odpowiedzi:
W swoim projekcie otwórz plik lib/Varien/File/Uploader.php
i umieść Mage::log()
wewnątrz save()
funkcji.
public function save($destinationFolder, $newFileName = null)
{
$this->_validateFile();
if ($this->_allowCreateFolders) {
$this->_createDestinationFolder($destinationFolder);
}
if (!is_writable($destinationFolder)) {
// Put a mage::log() and check what is the folder magento is looking for.
Mage::log($destinationFolder);
throw new Exception('Destination folder is not writable or does not exists.');
}
...
}
Z dziennika możesz znaleźć folder, którego szuka Magento. A następnie sprawdź uprawnienia do tego folderu.
Otrzymuję ten sam błąd na Magento 2, i jest to plik, z którego pochodzi błąd w tym przypadku:
vendor/magento/framework/File/Uploader.php
W linii 256
możesz tymczasowo umieścić ten kod, aby uzyskać nieusuwalny / nieistniejący folder:
if( !is_writable($destinationFolder) ) {
// throw new Exception('Destination folder is not writable or does not exists.');
throw new Exception($destinationFolder);
}
W przeciwnym razie sprawdź, czy te foldery istnieją i czy serwer WWW je zapisuje:
pub/media/catalog/
pub/media/catalog/category
pub/media/catalog/product
pub/media/images
pub/media/wysiwyg/
Dla mnie problem został rozwiązany przez zrobienie
pub / media / tmp
zapisywalny przez serwer WWW
Kolejne foldery w katalogu „pub / media” również są zapisywalne
- banners
- catalog
- images
- wysiwyg
Na ile warto, miałem ten problem kilka razy i zapomniałem, że zwykle jest to sam plik obrazu, a nie serwer po sprawdzeniu uprawnień i tak dalej. Nadal nie przesłał obrazu, ponieważ był zbyt duży, zarówno pod względem wymiarów, jak i rozmiaru pliku.
Rozwiązania dla mnie to:
Przed przesłaniem zmniejsz zdjęcie HIGH-REZ.
Zwiększ magento Maksymalna rozdzielczość lub prześlij obraz System > Catalog > Product Image
Upewnij się, że folder multimediów media / tmp / catalog / product istnieje ”i ustaw ten katalog do zapisu przez twój serwer WWW”
777
, lepiej powiedzieć „i spraw , aby ten katalog był zapisywalny przez twój serwer”. Chodzi o to, że nie ma potrzeby udzielania każdemu użytkownikowi prawa zapisu tylko po to, aby twój serwer mógł pisać obrazy. (Nie jestem tym, który przegłosował, ale na wypadek, gdybyś się zastanawiał, najprawdopodobniej jest to powód)
Uprzejme wyboru mediów folderu mający 777 permission.If was włączyć tryb środki kompilacja także kontrola obejmuje folderu mający 777 pozwolenia.
Po udzieleniu 777 uprawnień do tych folderów problem został dla mnie rozwiązany.
Może to być wygasły certyfikat administracji Plesk (tak było w moim przypadku).
Próbowałem powyższych kroków, ale to nie zadziałało. Stamtąd próbowałem uzyskać dostęp do plików za pośrednictwem FileZilla, aby jednocześnie nadać uprawnienia wszystkim folderom, stąd komunikat o błędzie dotyczący wygasłego certyfikatu. To nie jest certyfikat SSL samego sklepu, ale administracja Plesk. Stworzyłem nowy samopodpisany certyfikat, zastosowałem administrację Plesk i wszystko wróciło do normy.
To zadziałało dla mnie. Zostawiam tutaj mój wkład.
Powodzenia
Występuje błąd w Magento podczas przesyłania plików, gdy Twój Magento DocumentRoot na vhost jest prawidłowo ustawiony
/path/to/magento/pub
Zamiast (przestarzałe)
/path/to/magento
Program przesyłający próbuje utworzyć pliki w
/path/to/magento/pub/pub/your_upload_dir
Pamiętaj, że pub lokalizacji idzie dwa razy. Powiedzieli, że naprawią to w wersji 2.2.0+, ale w wersji 2.2.1 problem nadal występuje.