Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Structure de questionnaire invalide après l'import d'un fichier .lss

  • LouisGac
  • LouisGac's Avatar
  • Visitor
  • Visitor
6 years 6 months ago #158180 by LouisGac
après un échange de tickets et quelques tests, il s'avère qu'il faut modifier le fichier import_helper pour permettre la gestion de très gros fichier XML

Dans le fichier application/helpers/admin/import_helper.php à la ligne 838:
github.com/LimeSurvey/LimeSurvey/blob/ma...port_helper.php#L838

Il faut remplacer:
Code:
$xml = @simplexml_load_string($sXMLdata,'SimpleXMLElement',LIBXML_NONET);

par
Code:
$xml = @simplexml_load_string($sXMLdata,'SimpleXMLElement',LIBXML_NONET | LIBXML_PARSEHUGE);


Au sujet de ParseHuge:
php.net/manual/fr/libxml.constants.php#c...ant.libxml-parsehuge

Je ne sais pas si il y a des contrindications pour l'intégrer dans le master...
The topic has been locked.
  • Raffaele
  • Raffaele's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 years 6 months ago #158182 by Raffaele
Très bien je vais tester cette solution dès que j'obtiens l'accès à nos serveurs.

Je vous donne des nouvelles dès que cela est fait.
The topic has been locked.
  • Raffaele
  • Raffaele's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 years 6 months ago #158186 by Raffaele
Voici quelques variables du php.ini de notre serveur:

file_uploads = On
upload_max_filesize = 128M
max_file_uploads = 20
memory_limit = 256M

J'ai compléter la ligne ci-dessous dans le fichier /application/helpers/admin/import_helper.php au six emplacement possible :

$xml = @simplexml_load_string($sXMLdata,'SimpleXMLElement',LIBXML_NONET | LIBXML_PARSEHUGE);

Et lorsque je lance l'import, je n'ai plus l'erreur suivante : "Erreur de structure du formulaire"

Mais la page charge dans le vide depuis dix minutes =s.
The topic has been locked.
  • Raffaele
  • Raffaele's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 years 6 months ago #158332 by Raffaele
Bonjour,

je reviens vers vous pour vous présenter la solution de LouisGac qui à fonctionné dans mon cas. Merci à toi Louis pour ta patience.

Votre serveur est sous Nginx ou Apache?

personnellement, sur un serveur Nginx j'ai du:
1. Dans nginx.conf, ajouter les lignes:

client_max_body_size 200M;
client_header_timeout 6000;
client_body_timeout 6000;
fastcgi_read_timeout 6000;

2. Dans php.ini changer/ajouter:
(post_max_size est très important)

post_max_size = 200M
max_execution_time = 6000
max_input_time = 6000
memory_limit = 300M
default_socket_timeout = 6000



Il ne faut surtout pas hésiter à exagérer les valeurs ci-dessus, car je pensais avoir configuré mon serveur correctement avec par exemple la valeur :
max_execution_time = 3000

Ce qui n'était pas suffisant.

Merci à la communauté Fr et à bientôt ! =)
The following user(s) said Thank You: DenisChenu, LouisGac
The topic has been locked.
  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 years 6 months ago #158333 by Nickko
Merci, c'est très aimable de partager la solution de ton problème.

Nickko
Head of ergonomics, UX & UI.
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose