Message d'avertissement

The subscription service is currently unavailable. Please try again later.

Pièces jointes PDF

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Je souhaite joindre des fichiers PDF a mes articles. Pour cela j'ai activé le module UPLOAD.
J'ai activé le fait que tous les utilisateurs peuvent voir les pièces jointes.
Lorsque j'upload des fichiers, cela semble bien se passer, mais l'extension .txt est rajouté au PDF et au final, la pièce jointe n'apparait pas dans l'article.
J'ai essayé avec un fichier de 2Mo puis un de 150Ko. Idem.
Quelqu'un a t-il déjà rencontré ce problème
Drupal 4.7

En fait j'avais plusieurs problèmes sur mon serveur qui faisaient qu'aucun type de fichier ne pouvait être attaché.
Après plusieurs modifications et vérifications :
-augmentation des variables upload_max_filesize et post_max_size de php.ini
-répertoire temporaire accessible en écriture par tout le monde
-Droits dans Administrer>paramêtres>transfert corrects

, seuls les fichiers pdf posaient encore problème car une extension .txt leur ai ajouté.
En fait, ce problème ne survient qu'avec Firefox, sous IE l'attachement des PDF est OK.
Je ne sais pas si c'est un bug de Drupal ou de Firefox.

Je dirais que ça vient de ton hébergeur qui a mal configuré les types MIME correspondant aux différentes extensions :

Types MIME mal configurés chez ton hébergeur => fonction PHP mime_content_type() renvoie toujours "text/plain" => Drupal ajoute l'extension ".txt".

2 solutions :

  • Contacter ton hébergeur pour qu'il configure ses types MIME correctement.
  • OU, hacker Drupal pour qu'il arrête d'ajouter l'extension ".txt".

Si tu optes pour la 2eme, il faut mettre le code suivant en commentaire dans file.module :

<?php
 
if (((substr($file->filemime, 0, 5) == 'text/' || strpos($file->filemime, 'javascript'
$file->filemime = 'text/plain';
rename($file->filepath, $file->filepath .'.txt');
$file->filepath .= '.txt';
$file->filename .= '.txt';
}
?>

Une 3e solution : ajouter une ligne "AddType application/pdf pdf" au fichier ".htaccess" de Drupal.

Bien entendu, il faut que ce genre de directive soit autorisée par le serveur (c'est assez courant).

Merci Vincent, ta technique de mettre en commentaire un bout de file.inc (4.7) marche tres bien. Je suppose que ca enleve un peu de sécurité dans le cas ou qqun upload un fichier evac une extension non reconnu, ou pas d'extension, mais bon...

Merci aussi à kalis1 et jptavan, j'ai essayé leurs solutions, sans succès

Charlus

Super !

OUi, ça enlève de la sécurité.

De plus, c'est aussi considéré comme une mauvaise pratique, car tu mettras probablement à jour ton site dans quelques temps, et si ce jour-là, tu as oublié que tu avais modifié (on dit "forké") le file.module, alors la mise à jour écrasera ta modification...

Il n'est donc pas recommandé de modifier le code central (core) de Drupal, mais c'est parfois la seule solution.