IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

probleme post de gros fichier xml


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 103
    Points : 98
    Points
    98
    Par défaut probleme post de gros fichier xml
    Bonjour,

    Dans mon appli ajax je doit post des fichiers XML plus ou moins gros;
    quant la taille reste correcte aucun problème;
    Mais dés qu'elle dépasse une certaine taille (8/10 ko) le serveur ne répond plus, et pire, il écrit quant même le fichier mais tronqué, rendant l'xml invalide :/

    Les paramètre max exécution/ max input / set_time_limit n'on aucun effet sur le pbm

    L'upload de fichiers normal fonctionne pourtant correctement.. :/

    Vous n'auriez pas une idée du problème ?

    config : php 5.2 / apache 2 sur serveur virtuel ovh

    Merci d'avance ^^

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Bonsoir,

    Tu aurais un peu de code car je ne comprends pas bien si tu envois un fichier ou si tu envois le contenu à mettre dans un fichier.

    Premier cas, je ne vois pas pourquoi cela ne marcherait pas donc cela doit être le second, et je voudrais bien un peu de code.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    Bjr & merci pour ton attention

    Eh bien il saji de contenu XML à écrire dans un fichier... qui bug à partir d'une certaine taille. Par opposition à l'envoi de fichiers normaux (images, ..) de taille souvent supérieure mais dont l'upload marche nickel.

    Pour le code .. bin c'est de l'ajax; Envoyé en post sous forme de formulaire avec l'xml encodé dans une des variables...

    Je ne suis pas sur que soit parlant mais je met quelque morceaux choisi :
    envoi du code :
    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
    var nav = new AjaxSession();
    				nav.add({
    					id: "select",
    					evar: {
    						"uri": src
    					}
    				});
    				nav.add({// empile et encode
    					id: "saveDoc",
    					evar: {
    						"id" : "val",
    						"datas" : this+"" // tostring de l'xml
    					}
    				});
    				nav.onSync(function(rez) {... (cb)
    création / envoi de la requete trés classique:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    session.init = function init() {
    				try {
    					this.ReqObj = new XMLHttpRequest();
    				} catch(e) {
    					try {
    						this.ReqObj = new ActiveXObject("Msxml2.XMLHTTP");
    					} catch(e) {
    						this.ReqObj = new ActiveXObject("Microsoft.XMLHTTP");
    					}
    				}
    				if (this.ReqObj == null) {
    					alert("Your stupid browser does not support AJAX. :(");
    					return;
    				}
    				this.ReqObj.onreadystatechange = function() {
    					if (here.sessions[session.id].ReqObj.readyState == 4) {
    						if (here.sessions[session.id].ReqObj.status == 200) {
     
    							cb(here.sessions[session.id]);
    						}else {
    							error('Error code ' + here.sessions[session.id].ReqObj.status + ' (' + uri + ') !!');
    						}
    						here.sessions[session.id] = undefined;
    					}
    				};
    			};
    			try {
    				session.send = function() {
    					try {
    						this.ReqObj.open('POST', uri, true);
    						this.ReqObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    						this.ReqObj.setRequestHeader("Content-length", datas.length);
    						this.ReqObj.setRequestHeader("Charset", "utf-8");
    						this.ReqObj.setRequestHeader("Connection", "close");
    						this.ReqObj.send(datas);
    						this.etat = 1;
     
    					} catch(e) {
    						error("Erreur de comunication...");
    					}
    				};
    et en php g essayé de tester le contenu xml comme il rendait les fichiers invalide.... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    global $csession;
    		try {
    			$test = DOMDocument::loadXML($datas);
    		} catch (Exception $e) { //marche pas .. $test a p-e un statut en erreur mais c pas le pbm
    			return new dbItem("error", $e->getMessage());
    		}
     
     
    		if ($this->owner->getName() != $csession->cuser()->getName()) return new dbItem("error", "Not yours!! ".$this->owner->getName());
    		if (!file_put_contents ($this->cpath.$this->node->getAttribute("expand"), 
    						$datas))  // et là il m'ecrit le fichier, mais tronqué pour peu qu'il soit un peu trop long
    return new dbItem("error", "Can't save!!! Vous n'avez peut-etre pas le droit ?");
     
    		return new dbItem("success");

    p-e firebug en fait .. :s

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    bon en fait les données tronqué c firebug.
    sinon sur chrome et firfox sans firebug quant je regarde les taux de transferts il envoi du 64ko pdt presque 1mn pour un post qui doit pas dépasser les 20ko.. -.- (et n'enregistre rien du tout sur le serveur; le callback ne se déclenche jamais )

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/05/2007, 15h52
  2. [BdD] Gros fichier XML (500mo) => BDD : Quelle technique ?
    Par Masterlud dans le forum XQUERY/SGBD
    Réponses: 10
    Dernier message: 02/05/2007, 13h31
  3. [XSLT] probleme de parcourt deux fichiers xml dans xsl
    Par coucouA dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/07/2006, 20h32
  4. Transformer un très gros fichier XML avec XSL
    Par wozzz dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 30/05/2006, 10h57
  5. [C#] [XML] Traitement de gros fichiers XML (90 Mo)
    Par Pulsahr dans le forum Windows Forms
    Réponses: 20
    Dernier message: 01/12/2005, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo