Bonjour,
Dans un script, j'affiche un document RTF avec l'application par défaut installée sur la machine cliente. Je voudrais que ce document soit ouvert en lecture-écriture et, lors de l'enregistrement (CTRL + S) de celui-ci après d'éventuelles modifications par l'utilisateur, le répertoire d'enregistrement par défaut soit celui d'origine, donc que les modifications soient directement enregistrées dans le fichier original.
Pour ce faire, j'utilise une méthode de mon objet de type CLettre que voici :
Le fichier est bien affiché à l'écran via l'application adéquate, mais lors de l'enregistrement, le répertoire proposé est le "Temp" (comme si le fichier était ouvert en lecture seule) au lieu du répertoire d'origine dans lequel j'ai pourtant les droits en écriture est lecture. D'ailleurs, si je double-clique directement sur le document dans le répertoire d'origine, que j'y apporte des modifications et que je l'enregistre (CTRL + S), il m'enregistre bien les modification dans le document original.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public function affLettre() { if($file = fopen($this->id . "_temp.rtf", "w+")) { if(fwrite($file, $this->contenu)) { header("Content-type: application/force-download" ); header("Content-disposition: attachment; filename=" . $this->id . "_temp.rtf" . ";"); header("Content-Description: File Transfert"); header("Content-Transfer-Encoding: binary"); header("Pragma: no-cache"); header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); header("Expires: 0"); header("Content-Length: " . filesize($this->id . "_temp.rtf")); flush(); //envoi du fichier proprement dit readfile($this->id . "_temp.rtf", "w+"); } } }
Comme je veux faire tourner un service pour faire un post-traitement sur les fichiers se trouvant dans ce répertoire (enregistrement des modifications), cela est très problématique.
Quelqu'un aurait une idée?
Merci d'avance.
Partager