Der Magento-Bild-Upload funktioniert auch dann nicht, wenn Sie allen Ordnern 777 Berechtigungen erteilt haben

9

Ich kann keine Bilder im Magento-Administrationsbereich hochladen und erhalte die Fehlermeldung "Zielordner ist nicht beschreibbar oder nicht vorhanden". Kürzlich wurden alle Dateien von einem Hosting auf ein anderes verschoben. Irgendeine Lösung dafür?

user3164549
quelle
Was für ein Hosting-Paket haben Sie? Wenn es Support enthält, lohnt es sich möglicherweise, sie nach den aktuellen Berechtigungen zu fragen.
David Manners
Wir haben zwei Websites auf demselben Server gehostet und wir haben alle Berechtigungen zum Hochladen einer Datei und obwohl Dateien nicht hochgeladen werden
user3164549

Antworten:

16

Öffnen Sie in Ihrem Projekt die Datei lib/Varien/File/Uploader.phpund fügen Sie eine Mage::log()in die save()Funktion ein.

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.');
    }
    ...
}

Aus dem Protokoll können Sie den Ordner herausfinden, nach dem Magento sucht. Überprüfen Sie dann die Berechtigungen für diesen Ordner.

Sukeshini
quelle
5
Vielen Dank, ich habe vergessen, Media / tmp / category / product die Dateiberechtigung zu erteilen, und nachdem ich die Dateiberechtigung für diesen Ordner erteilt habe, ist das Problem behoben
user3164549
2
Ich bin froh zu hören, dass Ihr Problem gelöst wurde. Wenn dies hilfreich war, um das Problem zu lösen, markieren Sie es bitte als Antwort.
Sukeshini
5

Magento 2

Ich erhalte den gleichen Fehler auf Magento 2, und dies ist die Datei, aus der der Fehler in diesem Fall stammt:

vendor/magento/framework/File/Uploader.php

In der Zeile können 256Sie diesen Code vorübergehend platzieren, um den nicht beschreibbaren / nicht vorhandenen Ordner abzurufen:

if( !is_writable($destinationFolder) ) {
    // throw new Exception('Destination folder is not writable or does not exists.');
    throw new Exception($destinationFolder);
} 

Überprüfen Sie andernfalls, ob diese Ordner vorhanden sind und vom Webserver beschreibbar sind:

  • pub/media/catalog/
  • pub/media/catalog/category
  • pub/media/catalog/product
  • pub/media/images
  • pub/media/wysiwyg/
Andrea
quelle
3

Für mich wurde das Problem durch Machen gelöst

pub / media / tmp

vom Webserver beschreibbar

Die nächsten Ordner im Verzeichnis "pub / media" sind ebenfalls beschreibbar

- banners
- catalog
- images
- wysiwyg
Eliut Islas
quelle
3

Für das, was es wert ist, hatte ich dieses Problem ein paar Mal und habe vergessen, dass es normalerweise die Bilddatei selbst ist, nicht der Server, nachdem ich die Berechtigungen überprüft habe und so weiter. Das Bild wurde immer noch nicht hochgeladen, da es entweder in den Abmessungen oder in der Dateigröße zu groß war.

Die Lösungen für mich sind:

  • Verkleinern Sie ein HIGH-REZ-Foto vor dem Hochladen.

  • Magento erhöhen Maximale Auflösung oder Bild hochladen System > Catalog > Product Image

  • Erhöhen Sie das PHP-Dateigrößenlimit Ihres Servers mit .htaccess oder config. Siehe: /programming/6292687/upload-6-mb-image-in-magento
asherrard
quelle
2

Stellen Sie sicher, dass der Medienordner media / tmp / catalog / product vorhanden ist "und machen Sie dieses Verzeichnis für Ihren Webserver beschreibbar".

Altravista
quelle
Anstatt die Berechtigung auf zu setzen 777, ist es besser zu sagen "und dieses Verzeichnis von Ihrem Webserver beschreibbar zu machen". Die Idee ist, dass nicht jedem einzelnen Benutzer Schreibzugriff gewährt werden muss, damit Ihr Webserver Bilder schreiben kann. (Ich bin nicht derjenige, der abgelehnt hat, aber nur für den Fall, dass Sie sich gefragt haben, ist dies höchstwahrscheinlich der Grund dafür)
Dan
ja natürlich;)
Altravista
2

Bitte überprüfen Sie den Medienordner mit der Berechtigung 777.Wenn Sie den Kompilierungsmodus aktivieren, bedeutet dies, dass auch der Ordner mit der Berechtigung 777 überprüft wird .

Nachdem ich 777 die Berechtigung für diese Ordner erteilt habe, wurde das Problem für mich behoben.

Pasupathi Thangavel
quelle
0

Es kann sich um das abgelaufene Zertifikat der Plesk-Administration handeln (es war mein Fall).

Ich habe die obigen Schritte ausprobiert, aber es hat nicht funktioniert. Von dort aus habe ich versucht, über FileZilla auf die Dateien zuzugreifen, um allen Ordnern sofort die Berechtigungen zu erteilen, daher eine Fehlermeldung über das abgelaufene Zertifikat. Es ist nicht das SSL-Zertifikat des Geschäfts selbst, sondern die Verwaltung von Plesk. Ich habe ein neues selbstsigniertes Zertifikat erstellt, die Plesk-Administration angewendet und alles hat sich wieder normalisiert.

Das hat bei mir funktioniert. Ich lasse hier meinen Beitrag.

Viel Glück

Cledson Silva
quelle
0

In Magento gibt es einen Fehler beim Hochladen von Dateien, wenn Ihr magento DocumentRoot auf vhost richtig eingestellt ist

/path/to/magento/pub

Anstelle von (veraltet)

/path/to/magento

Der Uploader versucht, Dateien in zu erstellen

/path/to/magento/pub/pub/your_upload_dir

Beachten Sie, dass der Standort Pub zweimal geht. Sie sagten, dass sie es in 2.2.0+ beheben werden, aber in 2.2.1 tritt dieses Problem immer noch auf.

A. Maksymiuk
quelle