web-dev-qa-db-fra.com

Impossible de télécharger une pièce jointe à des éléments K2 via FTP

J'utilise K2 pour la gestion de contenu. Afin de télécharger des fichiers, je devais définir le répertoire/media/k2 et ses sous-répertoires sur 775. Donc, bien sûr, le site Web a été endommagé en raison des paramètres du groupe www-data. C'est une très mauvaise expérience, mais elle m'a beaucoup appris.

Le propriétaire de mes annuaires était zkanoca et gorup était www-data. J'ai supprimé tous les fichiers et répertoires et téléchargé à partir de la sauvegarde. J'ai défini les valeurs de CHMOD à 755 pour les répertoires et 644 pour les fichiers comme recommandé.

Cette erreur se produit lorsqu'un utilisateur essaie également de télécharger une image de profil. Il ajoute le nom de fichier de l'image de profil utilisateur dans la base de données, mais ne télécharge pas le fichier dans le répertoire media/k2/user.

Pour le site Web restauré, le propriétaire est zkanoca et le groupe zkanoca.

Ensuite, j'ai entré les informations FTP sur la page Configuration globale dans le panneau de l'administrateur.

J'ai essayé de télécharger certains fichiers en utilisant le gestionnaire de médias de Joomla, il en est résulté sans problème.

Mais lorsque j'essaie d'ajouter des pièces jointes à un élément K2, il indique qu'il a été téléchargé et les répertorie dans un tableau, mais en réalité, il ne les télécharge pas. Il insère simplement un nouvel enregistrement dans la table k2_attachments , mais ne télécharge pas le fichier dans /media/k2/attachments . Lorsque je clique sur le lien du fichier sur la face avant du site, un message apparaît K2_FILE_DOES_NOT_EXIST. Mais dans le processus de téléchargement, cela ne donne aucune erreur.

Si j'ajoute une pièce jointe à un élément à l'aide de K2, des enregistrements sont ajoutés à la base de données, mais le fichier n'est pas téléchargé. Ensuite, si je télécharge manuellement, cela fonctionne.

Une autre chose amusante, si je télécharge d'abord le fichier et que je l'ajoute en tant que pièce jointe à un élément, le même message d'erreur apparaît ci-dessus.

Je veux savoir comment télécharger des fichiers sur des éléments K2 avec des paramètres FTP. Car autant que je sache, il utilise HTTP et non FTP pour les fichiers à télécharger.

J'ai essayé une dernière chose mais cela n'a pas aidé non plus. J'ai changé le dossier des pièces jointes à un autre. Là encore, il n'a pas pu écrire le fichier dans le répertoire. Cela signifie donc que quelque chose ne va pas avec les procédures de K2.

1
zkanoca

Peut-être avez-vous installé K2 avant de décider d'utiliser l'interface FTP?

Lorsqu'une extension est installée à l'aide de l'interface Apache, tous les fichiers et répertoires créés lors de l'installation appartiennent à l'utilisateur Apache. En règle générale, l'utilisateur FTP ne dispose pas de l'autorisation en écriture. Le correctif consiste à changer le propriétaire pour corriger la valeur.

chown va résoudre ce problème si vous pouvez l'utiliser. Sinon, la solution la plus simple consiste à effectuer une sauvegarde des fichiers joomla, puis à la restaurer avec le propriétaire approprié. Utiliser FTP par exemple.

Néanmoins, la première étape consiste à accéder au dossier media/k2 et à voir si vous pouvez y écrire en utilisant FTP et pouvez le réparer en téléchargeant le dossier, en le supprimant et en le restaurant. (Ou chown mais ..)

1
Ville Niemi

As-tu essayé:

J'ai modifié le fichier administrateur/composants/com_k2/lib/class.upload.php et défini les méthodes de détection MIME sur false:

// these are the different MIME detection methods. if one of these methods
// doesn't work on yoursystem, you can deactivate it here; just set it to false
$this->mime_fileinfo = false; // MIME detection with Fileinfo PECL extension   
$this->mime_file = false; // MIME detection with UNIX file() commaed
$this->mime_magic = false; // MIME detection with mime_magic (mime_content_type())
$this->mime_getimagesize = false; // MIME detection with getimagesize()

Cela a résolu le problème

0
Ville Niemi