Le téléchargement d'images Magento ne fonctionne pas même après avoir accordé à tous les dossiers les autorisations 777


9

Je ne parviens pas à télécharger des images dans le panneau d'administration de magento, j'obtiens l'erreur "Le dossier de destination n'est pas accessible en écriture ou n'existe pas". Récemment déplacé tous les fichiers d'un hébergement vers un autre. Une solution pour ça?


Quel type d'hébergement avez-vous? S'il inclut un support, il peut être utile de leur demander quelles sont les autorisations actuelles.
David Manners

Nous avons deux sites Web hébergés sur le même serveur et nous avons toutes les autorisations pour télécharger un fichier et même si les fichiers ne sont pas en cours de téléchargement
user3164549

Réponses:


16

Dans votre projet, ouvrez le fichier lib/Varien/File/Uploader.phpet mettez un Mage::log()à l'intérieur de la save()fonction.

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

Dans le journal, vous pouvez trouver le dossier que Magento recherche. Et puis vérifiez les autorisations pour ce dossier.


5
Merci beaucoup, j'ai oublié de donner l'autorisation de fichier à Media / tmp / category / product, et après avoir accordé l'autorisation de fichier à ce dossier, le problème a été résolu
user3164549

2
Heureux d'apprendre que votre problème a été résolu. Si cela a été utile pour résoudre le problème, veuillez le marquer comme réponse.
Sukeshini

5

Magento 2

J'obtiens la même erreur sur Magento 2, et c'est le fichier d'où vient l'erreur dans ce cas:

vendor/magento/framework/File/Uploader.php

À la ligne, 256vous pouvez placer temporairement ce code pour obtenir le dossier non accessible en écriture / inexistant:

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

Sinon, vérifiez si ces dossiers existent et sont accessibles en écriture par le serveur Web:

  • pub/media/catalog/
  • pub/media/catalog/category
  • pub/media/catalog/product
  • pub/media/images
  • pub/media/wysiwyg/

3

Pour moi, le problème a été résolu en faisant

pub / média / tmp

accessible en écriture par le serveur Web

Les dossiers suivants sous le répertoire "pub / media" sont également accessibles en écriture

- banners
- catalog
- images
- wysiwyg

3

Pour ce que ça vaut, j'ai eu ce problème plusieurs fois et j'ai oublié que c'est généralement le fichier image lui-même, pas le serveur après avoir vérifié les autorisations et tout ça. Il ne téléchargerait toujours pas l'image car elle était trop grande, que ce soit en dimensions ou en taille de fichier.

Les solutions pour moi sont les suivantes:

  • Réduisez une photo HIGH-REZ avant de la télécharger.

  • Augmentez la résolution maximale de magento ou téléchargez l'image System > Catalog > Product Image

  • augmentez la limite de taille de fichier PHP de votre serveur avec .htaccess ou config voir: /programming/6292687/upload-6-mb-image-in-magento

2

Assurez-vous que le dossier multimédia media / tmp / catalog / product existe "et rendez ce répertoire accessible en écriture par votre serveur Web"


Au lieu de définir l'autorisation sur 777, il est préférable de dire «et de rendre ce répertoire accessible en écriture par votre serveur Web». L'idée est qu'il n'est pas nécessaire d'accorder à chaque utilisateur un accès en écriture pour que votre serveur Web puisse écrire des images. (Je ne suis pas celui qui a voté contre, mais juste au cas où vous vous poseriez la question, c'est probablement la raison pour laquelle)
Dan

oui bien sûr;)
Altravista

2

Veuillez vérifier le dossier multimédia ayant l' autorisation 777.Si vous activez le mode de compilation, vérifiez également que le dossier inclut l' autorisation 777 .

Après avoir donné l'autorisation 777 à ces dossiers, le problème a été résolu pour moi.


0

Il peut s'agir du certificat expiré de l'administration Plesk (c'était mon cas).

J'ai essayé les étapes ci-dessus, mais cela n'a pas fonctionné. De là, j'ai essayé d'accéder aux fichiers via FileZilla pour donner les autorisations à tous les dossiers, d'où un message d'erreur sur le certificat expiré. Ce n'est pas le certificat SSL du magasin lui-même, mais l'administration de Plesk. J'ai créé un nouveau certificat auto-signé, appliqué son administration Plesk et tout est revenu à la normale.

Cela a fonctionné pour moi. Je laisse ici ma contribution.

Bonne chance


0

Il y a un bogue dans Magento pour le téléchargement de fichiers lorsque votre documentRoot magento sur vhost est correctement configuré pour

/path/to/magento/pub

Au lieu de (obsolète)

/path/to/magento

Uploader essaie de créer des fichiers dans

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

Notez que l'emplacement pub va deux fois. Ils ont dit qu'ils le corrigeraient dans 2.2.0+ mais dans 2.2.1 ce problème apparaît toujours.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.