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 :

stream_notification_callback et apc


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut stream_notification_callback et apc
    Bonjour,
    j'ai un serieux soucis que je ne comprend pas du tout ...
    J'ai un script qui télécharge un fichier avec fopen fwrite et fread je suis donc allé chercher dans la doc php un script de fonction callbcak pour suivre le déroulement du script :
    le voici :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {
     
     
    	$key = $_POST['APC_UPLOAD_PROGRESS'];
    	$array = array (
    		'total' => $bytes_max,
    		'current' => $bytes_transferred
    	);	
    	apc_store($key, $array);
     
        echo $bytes_transferred;
     
    }
    et la le soucis c'est que apc vas renvoyer les valeurs de content et total a 0
    Code json : Sélectionner tout - Visualiser dans une fenêtre à part
    {"total":0,"current":0}
    alors que le echo $bytes_transferred affiche correctement les valeurs souhaités :
    0
    0
    0
    0
    0
    0
    0
    0
    0
    2896
    4344
    5792
    7240
    8688
    ...
    264984
    266432
    267880
    269328
    270776
    272224
    273672
    275120
    Merci ...

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    montre ton script ou y'a le apc_fetch

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    Voila
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(isset($_GET['id_progress'])) {
     
    $rep=apc_fetch($_GET['id_progress']);		
    echo json_encode($rep);
        exit;
     
    }

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    normalement t'as pas a utiliser un champs APC_UPLOAD_PROGRESS, après c'est qu'une variable mais bon, je vais testé de mon coté pour voir

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'as regarder les donnéés dans la console APC ?

    montre ton code avec le fopen et compagnie

  6. #6
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    $url = $_POST['url'];
    //recuperation du size du fichier
    $remoteFile = $url;
    $ch = curl_init($remoteFile);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //not necessary unless the file redirects (like the PHP example we're using here)
    $data = curl_exec($ch);
    curl_close($ch);
    if ($data === false) {
      echo 'cURL failed';
      exit;
    }
    $contentLength = 'unknown';
    $status = 'unknown';
    if (preg_match('/^HTTP\/1\.[01] (\d\d\d)/', $data, $matches)) {
      $status = (int)$matches[1];
    }
    if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
      $contentLength = ((int)$matches[1])/1000;
    }
    // --
     
    function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {
    global $url;
    	echo filesize("gecici/".basename($url));
     		//global $contentLength;
    	$key = $_POST['APC_UPLOAD_PROGRESS'];
    	$total = $bytes_transferred;
    	$array = array (
    		'total' => $bytes_max,
    		'current' => $bytes_transferred
    	);	
    	apc_store($key, $array);
     
       // echo $total."<br>";
     
    }
     
    $ctx = stream_context_create();
    stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));
     
      $file = fopen ($url, "rb", false, $ctx);
      if ($file) {
        $newf = fopen ("gecici/".basename($url), "wb");
     
        if ($newf)
        while(!feof($file)) {
          fwrite($newf, fread($file, $contentLength ), $contentLength );
     
        }
      }
     
      if ($file) {
        fclose($file);
      }
     
      if ($newf) {
        fclose($newf);
      }
    Voila après je ne sais pas comment regarder les données dans la console apc

Discussions similaires

  1. OVH Start et PECL APC ?
    Par mindover280 dans le forum OVH
    Réponses: 0
    Dernier message: 22/08/2008, 11h24
  2. APC en hibernation.
    Par Ticlaude dans le forum Windows Vista
    Réponses: 0
    Dernier message: 17/01/2008, 03h29
  3. Que différencie les onduleur APC aux TRIP LITE ?
    Par nisso dans le forum Périphériques
    Réponses: 1
    Dernier message: 07/01/2007, 15h22
  4. APC sous windows
    Par JEDI_BC dans le forum MFC
    Réponses: 4
    Dernier message: 16/11/2005, 11h05

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