2017-06-27 15 views
0

Je cherche à changer notre intranet actuel, qui fonctionne avec les fichiers RTF, afin qu'il puisse fonctionner avec docx.TinyButStrong et chemin de fichier dynamique

Nous devons être en mesure de changer les modèles, et ensuite l'injecter avec des données de l'intranet, et l'enregistrer comme un fichier docx. Pour cela j'ai trouvé le plugin TinyButStrong, et il semble pouvoir faire, ce que nous voulons.

J'ai fait quelques tests, et je peux l'obtenir pour enregistrer un fichier dans le même dossier que le modèle. Mais je ne peux pas l'obtenir pour sauver dans un autre endroit.

Il me donne cette erreur:

TinyButStrong Error OpenTBS Plugin: Method Flush() cannot overwrite the target file '//SERVER/SHARE/FOLDER/SUBFOLDER/ANOTHER SUBFOLDER/document name.docx'. This may not be a valid file path or the file may be locked by another process or because of a denied permission. The process is ending, unless you set NoErr property to true. 

Je ne pense pas que ce soit une erreur de premission, parce que je travaille dans le même script qui travaille avec nos fichiers RTF, et ils sont sauvés au même endroit , comme j'en ai besoin.

Mais je suis sûr que c'est juste moi, qui ne comprend pas TinyButStrong dans le bon sens, alors comment est-ce que je le fais sauver sur le chemin du fichier dynamique?

Ce qui suit est où j'essaie de gérer le chemin d'accès dynamique du fichier.

 $file = "//$SERVER/$KATALOG/".$_GET['type'].$root.$nr."/"; //.$_GET['type'].$nr."R".$rev."-".$sprog.".rtf"; 


    //echo $template; 
    $output_file_name = str_replace('.', '_'.date('Y-m-d').$save_as.'.', $filename); 
    echo $output_file_name = $file . $output_file_name; 
    if ($save_as==='') { 
     // Output the result as a downloadable file (only streaming, no data saved in the server) 
     $TBS->Show(OPENTBS_DOWNLOAD, $output_file_name); // Also merges all [onshow] automatic fields. 
     // Be sure that no more output is done, otherwise the download file is corrupted with extra data. 
     exit(); 
    } else { 
     // Output the result as a file on the server. 
     $TBS->Show(OPENTBS_FILE, $output_file_name); // Also merges all [onshow] automatic fields. 
     // The script can continue. 
     exit("File [$output_file_name] has been created."); 
    } 

Répondre

0

Il semble que vous utilisiez le plug-in OpenTBS pour TinyButStrong. OpenTBS utilise simplement la fonction PHP fopen($File, 'w') lors de l'écriture du fichier cible. Le message d'erreur que vous avez indique que PHP n'a pas réussi à ouvrir un handle pour ce fichier en mode écriture. Les raisons peuvent être diverses, mais vous pouvez vous vérifier avec le chemin du fichier que vous avez mentionné.

+0

Oui, j'utilise le plug-in OpenTBS mais je ne peux pas te suivre tout le temps. J'ai ce code qui fonctionne. \t \t si ($ diverses = "forkal"!) { \t \t \t $ fp = fopen ($ file, 'w'); \t \t \t fputs ($ fp, $ sortie); \t \t \t fclose ($ fp); \t \t} Basicly Je suis en train de se débarrasser de cela, et utiliser à la place OpenTBS Mais je guesing que le output_file_name, je fournis est mal –

+0

en quelque sorte pour un débogage robuste, essayez votre extrait '$ fp = fopen ($ file, 'w') 'juste avant le $ TBS-> Show (OPENTBS_FILE, $ output_file_name)' et avec la même variable '$ output_file_name'. – Skrol29

+0

Hmm, cela ne fait rien - aucune erreur ou aucun fichier créé ... –

-1

J'ai la même erreur comme vous avec OpenTBS et dans mon cas, il est très simple que j'ai oublié de créer le dossier de répertoire pour stocker le fichier de sortie