Categories > [old] TbsOoo & TinyDoc >

Can't copy file to process dir

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Bruno
Date: 2007-11-26
Time: 13:59

Can't copy file to process dir

Bonjour à tous,

Je viens d'installer la classe tbsOOO chez ovh et j'ai le message suivant

"TinyButStrong Error (NewDocFromTpl method): Can't copy file to process dir : templates_doc/

TinyButStrong Error (LoadXmlFromDoc method): File not found : tmp/a2e27b7d3d0740f6e04e3af6b72caf2b/content.xml"

Mes paramètres sont :

cheZipBinary : /usr/bin/zip
cheUnzipBinary : /usr/bin/unzip
cheProcessDir : tmp/
DataCharset : ISO 8859-1    
cheDocFromTpl : templates_doc/

Les droits sont au maxi 777

Serait-ce un problème d'environnement de zip ?

Merci à tous   
By: Olivier Loynet
Date: 2007-11-27
Time: 12:38

Re: Can't copy file to process dir

Bonjour,

Vérifie si le répertoire "tmp" à tous les droits RWX en 777.
Cela semblerait être un problème avec la commande "mkdir" ou "copy" en PHP chez OVH

A vérifier dans la classe si cela peut résoudre ton problème avec le changement ci-dessous, mais cela m'étonnerait

ligne à remplacer
if (!mkdir($this->_ooo_basename, 0700)) {

remplacer par
if (!mkdir($this->_ooo_basename, 0777)) {



Pour tester la création de répertoire et la copie du template
met après la commande $OOo->NewDocFromTpl, un "die".

Ensuite tu verifie si dans ton repertoire "tmp" il existe bien
- 1 répertoire nommé xxxxxxxxx
- 1 fichier nommé xxxxxxx.odt (ou sxw ou sxc, ...)

Le nom "xxxxxxxxx" est aléatoire


Ce que fait la classe

1-elle créé un répertoire "xxxx" dans tmp

2-elle copie le fichier template_doc/ton-template dans tmp en renommant le fichier en xxxx


Tu peux tester si la fonction zip est accessible par la commande PHP "system" ou "exec"

par exemple
<?php
echo '<pre>';
$last_line = system('/usr/bin/zip -h', $retval);
echo '</pre>';
echo '<hr />Last line of the output: '.$last_line;
echo '<hr />Return value: ' . $retval;
?>

Même chose avec la commande unzip
<?php
echo '<pre>';
$last_line = system('/usr/bin/unzip -h', $retval);
echo '</pre>';
echo '<hr />Last line of the output: '.$last_line;
echo '<hr />Return value: ' . $retval;
?>




By: Bruno
Date: 2007-12-02
Time: 17:53

Re: Can't copy file to process dir

Bonjour Olivier,

Les répertoires tmp et templates_doc sont en 777

Lorsque je met un die sur la

J'ai uniquement cette erreur qui apparaît :

"TinyButStrong Error (NewDocFromTpl method): Can't copy file to process dir : templates_doc/"

Ce qui est normal

J'ai testé le zip et le unzip tout est ok

Dans tmp j'ai un dossier "5c08eb042523b951e06b2036ff3a1d03" contenant "content.xml" dont la taille est à 0

J'ai pourtant le message :
TinyButStrong Error (LoadXmlFromDoc method): File not found : tmp/5c08eb042523b951e06b2036ff3a1d03/content.xml
By: Olivier Loynet
Date: 2007-12-03
Time: 23:12

Re: Can't copy file to process dir

Bonsoir,

Ton fichier content.xml ne peut pas être égal à 0, il y a un problème lors de l'extraction.

Pour faire un test, tu changes l'extension de ton fichier, par exemple
test.odt en test.odt.zip et tu verras les fichiers contenus le fichier OpenOffice.
Sous Windows tu peux aussi faire "ouvrir avec..." une appli comme winrar ou équivalente

Olivier
By: Olivier Loynet
Date: 2007-12-03
Time: 23:20

Re: Can't copy file to process dir

Si je crois me souvenir dans la liste, c'est un problème de version de ZIP et UNZIP ou de paramètres à passer avec ces derniers.
Dans la classe je fais la commande suivante :
UNZIP nom_fichier_ooo -d nom_repertoire content.xml

à tester directement en ligne de commande

Olivier