Petite mise à jour pour la bibliothèque svgraph.php
Si on utilise inkscape pour transformer un fichier SVG en pdf, on obtient quasiment une page blanche.
Le souci vient que Inkscape ne reconnait pas les variables CSS et ne gère une feuille de style CSS externe dans un fichier SVG
Pour tester voir le fichier test.php dans le plugin
La biliothèque svgraph.php permet de créer des graphiques en svg directement sur le serveur plutôt qu'avec une bibliothèque javascript chargée dans le navigateur.
Correction sur une expression régulière pour reconnaitre le lien à crypter dans le cas d'un fichier seul.
S@lut, Cpalo m'a fait un petit retour.
j'ai un peu modifié le script car je l'utilise de façon un peu triviale (les dossiers sont hors de data/media) et affichait une erreur 404 (doc introuvable) dù au test de la fonction plxMotorSendDownload() interne a PluXml.
Dans le fichier kzDownload.php
[== PHP ==]
public function plxMotorSendDownload() {
$code = <<< 'CODE'
<?php
$this->plxPlugins->aPlugins['##CLASS##']->stats(
substr(
$file,
strlen(PLX_ROOT.$this->aConf['medias'])
)
);
?>
CODE;
Est devenue
[== PHP ==]
public function plxMotorSendDownload() {
$code = <<< 'CODE'
<?php
$this->plxPlugins->aPlugins['##CLASS##']->stats(
substr(
$file,
strlen(PLX_ROOT.$this->aConf['medias'])
)
);
//Fix if not in media folder ::: AND preg_match('#^'.str_replace('\\', '/', realpath(PLX_ROOT.$this->aConf['medias']).'#'), str_replace('\\', '/', realpath($file)))
if(file_exists($file) ) {
header('Content-Description: File Transfer');
header('Content-Type: application/download');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header('Content-Length: '.filesize($file));
readfile($file);
exit;
}
?>
CODE;
Du fait des restrictions des pages perso de free.fr qui limite le "readfile".
Cela donne une erreur avec des fichier supérieur à 1 Mo.
C:\Users\Pa*****ce\AppData\Local\Temp\9JKo921m.zip.part ne pourra être enregistré car le fichier source ne peut être lu.
Réessayez plus tard ou contactez l’administrateur.
Ayant déjà eu ce souci avec le dépôt, voici la partie du code utilisé maintenant sur les pages goodies.
j'ai solutionné ainsi :
Dans le fichier kzDownload.php
public function plxMotorSendDownload() {
$code = <<< 'CODE'
plxPlugins->aPlugins['##CLASS##']->stats(
substr(
$file,
strlen(PLX_ROOT.$this->aConf['medias'])
)
);
//Fix if not in media folder ::: AND preg_match('#^'.str_replace('\\', '/', realpath(PLX_ROOT.$this->aConf['medias']).'#'), str_replace('\\', '/', realpath($file)))
if(file_exists($file) ) {
header('Content-Description: File Transfer');
header('Content-Type: application/download');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header('Content-Length: '.filesize($file));
readfile($file);
exit;
}
?>
CODE;
Est devenue
public function plxMotorSendDownload() {
$code = <<< 'CODE'
<?php
$this->plxPlugins->aPlugins['##CLASS##']->stats(
substr(
$file,
strlen(PLX_ROOT.$this->aConf['medias'])
)
);
//Fix if not in media folder ::: AND preg_match('#^'.str_replace('\\', '/', realpath(PLX_ROOT.$this->aConf['medias']).'#'), str_replace('\\', '/', realpath($file)))
if(file_exists($file)) {
$testfopen = @fopen($file);
if($testfopen){
header('Content-Description: File Transfer');
header('Content-Type: application/download');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header('Content-Length: '.filesize($file));
readfile($file);
} else {//Fix free.fr readfile limited to 1M
header_remove();
header('Location: '.$file);
}
exit;
}
?>
CODE;
#AMHA il est possible que la fonction plxMotor->sendDownload() interne a PluXml en soit aussi victime, et que bazooka07 préférerai utiliser un système basé sur le HOST qui économiserai le serveur, mais là ça semble bien rouler et faire le taf ;)
Réponses
http://forum.pluxml.org/viewtopic.php?pid=57269#p57269
Petite mise à jour pour la bibliothèque svgraph.php
Si on utilise inkscape pour transformer un fichier SVG en pdf, on obtient quasiment une page blanche.
Le souci vient que Inkscape ne reconnait pas les variables CSS et ne gère une feuille de style CSS externe dans un fichier SVG
Pour tester voir le fichier test.php dans le plugin
La biliothèque svgraph.php permet de créer des graphiques en svg directement sur le serveur plutôt qu'avec une bibliothèque javascript chargée dans le navigateur.
Correction sur une expression régulière pour reconnaitre le lien à crypter dans le cas d'un fichier seul.
j'ai un peu modifié le script car je l'utilise de façon un peu triviale (les dossiers sont hors de data/media) et affichait une erreur 404 (doc introuvable) dù au test de la fonction plxMotorSendDownload() interne a PluXml.
Dans le fichier kzDownload.php Est devenue
Si cela peu aidé quelqu'un
[edit] Merci Bazooka pour ce magnifique outil.
Notre temps est la seule monnaie vraie ;)
Site, Dépôt, framagit, MyShop, Factux
S@lut, Cpalo m'a fait un retour.
Du fait des restrictions des pages perso de free.fr qui limite le "readfile".
Cela donne une erreur avec des fichier supérieur à 1 Mo.
C:\Users\Pa*****ce\AppData\Local\Temp\9JKo921m.zip.part ne pourra être enregistré car le fichier source ne peut être lu.
Réessayez plus tard ou contactez l’administrateur.
Ayant déjà eu ce souci avec le dépôt, voici la partie du code utilisé maintenant sur les pages goodies.
j'ai solutionné ainsi :
Dans le fichier kzDownload.php
Est devenue
#AMHA il est possible que la fonction plxMotor->sendDownload() interne a PluXml en soit aussi victime, et que bazooka07 préférerai utiliser un système basé sur le HOST qui économiserai le serveur, mais là ça semble bien rouler et faire le taf ;)
Et encore Merci @Bazooka07 pour ce bon greffon.
Notre temps est la seule monnaie vraie ;)
Site, Dépôt, framagit, MyShop, Factux