Copier un fichier dans un répertoire zip sur ftp avec php

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par jer2701, 6 Février 2008.

Tags:
  1. jer2701
    jer2701 WRInaute occasionnel
    Inscrit:
    2 Septembre 2005
    Messages:
    341
    J'aime reçus:
    0
    Bonjour,

    je cherche à copier un fichier .doc dans un répertoire .zip sur serveur ftp
    J'arrive bien à copier le fichier dans un répertoire non compressé mais je n'arrive pas à le copier directement dans un répertoire compressé, quelqu'un peut-il m'éclairer sur ce sujet ?

    Merci par avance,
     
  2. bixi
    bixi WRInaute discret
    Inscrit:
    19 Septembre 2007
    Messages:
    70
    J'aime reçus:
    0
    Salut ;)

    Tu passe par un logiciel FTP?

    Si oui c'est normal, ce n'est pas faisable comme sur un bureau windows..

    Soit tu reforme le zip sur windows et tu le reupload

    Soit tu doit passer par de la ligne de commande sur ton serveur Nix
    ou via language de script (genre php)

    Il te faudra les librairies adequates cela dit
     
  3. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 650
    J'aime reçus:
    4
  4. jer2701
    jer2701 WRInaute occasionnel
    Inscrit:
    2 Septembre 2005
    Messages:
    341
    J'aime reçus:
    0
    Ah oui pardon j'ai oublié de préciser que je faisais ça avec Php depuis un script d'upload
     
  5. bixi
    bixi WRInaute discret
    Inscrit:
    19 Septembre 2007
    Messages:
    70
    J'aime reçus:
    0
    alors j'espere que tu es sur un dédié ou que tu as la librairie zlib d'installé.. sinon ..
     
  6. jer2701
    jer2701 WRInaute occasionnel
    Inscrit:
    2 Septembre 2005
    Messages:
    341
    J'aime reçus:
    0
    malheureusement non je suis sur un mutualisé ... je vais voir pour configurer le php.ini
     
  7. jer2701
    jer2701 WRInaute occasionnel
    Inscrit:
    2 Septembre 2005
    Messages:
    341
    J'aime reçus:
    0
    Bon apparement dans mon php.ini les extensions zlib sont bien activées ..

    Je dois donc pouvoir le faire ? :roll:
     
  8. bixi
    bixi WRInaute discret
    Inscrit:
    19 Septembre 2007
    Messages:
    70
    J'aime reçus:
    0
    nickargall t'a donné de la lecture ;)
     
  9. jer2701
    jer2701 WRInaute occasionnel
    Inscrit:
    2 Septembre 2005
    Messages:
    341
    J'aime reçus:
    0
    Oui et j'ai bien fais la lecture ... :roll:

    Cependant je reste avec un probléme, j'ai essayé d'excuter le code suivant :

    $zip = new ZipArchive;
    $res = $zip->open('test.zip');
    print "res = $res"; // juste pour voir
    if ($res === TRUE)
    {
    $zip->addFile($document, $document_name);
    $zip->close();
    echo "ok";
    }
    else
    {
    echo "échec";
    }

    et en fait il ne renvoit aucun résultat !?? 8O

    je précise que les extensions zlib sont bien activés :!:
     
  10. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 650
    J'aime reçus:
    4
    C'est normal les trois signes "egal" dans ta condition ??? moi j'en aurais mis que deux.


    Code:
    $zip = new ZipArchive;
    $res = $zip->open('test.zip');
    print "res = $res"; // juste pour voir
    if ($res == true)
    {
    $zip->addFile($document, $document_name);
    $zip->close();
    echo "ok";
    }
    else
    {
    echo "échec";
    } 
    
    Sinon, ton "print $res" ne fonctionnera pas je pense, vu que $res n'est pas une chaine de caractères mais une variable obtenue avec la fonction open et qui contient donc plusieurs données (nom, type de fichier, taille, ...)
     
  11. jer2701
    jer2701 WRInaute occasionnel
    Inscrit:
    2 Septembre 2005
    Messages:
    341
    J'aime reçus:
    0
    oui c'est normal les signes égal .

    OK que le $res s'affiche pas mais le résultat de la condition devrait lui s'afficher
     
  12. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 650
    J'aime reçus:
    4
    bon ben alors je vois pas
    ps: j'ai édité mon post pendant que tu répondais ;)
     
  13. jer2701
    jer2701 WRInaute occasionnel
    Inscrit:
    2 Septembre 2005
    Messages:
    341
    J'aime reçus:
    0
    info supplémentaire : Toutes les lignes de codes qui se situe après ce morceau de code ne s'execute pas ... :?

    Si quelqu'un à déjà rencontré ce problème avec cette fonction ... 8O
     
  14. bixi
    bixi WRInaute discret
    Inscrit:
    19 Septembre 2007
    Messages:
    70
    J'aime reçus:
    0
    a mon avis test.zip .. il ne le trouve tout simplement pas, tu dois devoir utiliser un chemin absolu..

    genre /home/tonsite/www/zips/test.zip

    edit: en lisant la doc ( :lol: ), un mec a posté une gestion plus pointu des codes d'erreurs, sert t'en pour savoir ce qui cloche :

    Some older PHP versions used to return false if zip_open failed, and newer versions return the number of error (as integer), so instead of this:

    $zip = zip_open($zip_file);
    if ($zip) {
    // consider zip file opened successfully
    }

    use this:

    $zip = zip_open($zip_file);
    if (is_resource($zip)) {
    // consider zip file opened successfully
    }

    You may also use this function to get the error message by it's number:

    function zipFileErrMsg($errno) {
    // using constant name as a string to make this function PHP4 compatible
    $zipFileFunctionsErrors = array(
    'ZIPARCHIVE::ER_MULTIDISK' => 'Multi-disk zip archives not supported.',
    'ZIPARCHIVE::ER_RENAME' => 'Renaming temporary file failed.',
    'ZIPARCHIVE::ER_CLOSE' => 'Closing zip archive failed',
    'ZIPARCHIVE::ER_SEEK' => 'Seek error',
    'ZIPARCHIVE::ER_READ' => 'Read error',
    'ZIPARCHIVE::ER_WRITE' => 'Write error',
    'ZIPARCHIVE::ER_CRC' => 'CRC error',
    'ZIPARCHIVE::ER_ZIPCLOSED' => 'Containing zip archive was closed',
    'ZIPARCHIVE::ER_NOENT' => 'No such file.',
    'ZIPARCHIVE::ER_EXISTS' => 'File already exists',
    'ZIPARCHIVE::ER_OPEN' => 'Can\'t open file',
    'ZIPARCHIVE::ER_TMPOPEN' => 'Failure to create temporary file.',
    'ZIPARCHIVE::ER_ZLIB' => 'Zlib error',
    'ZIPARCHIVE::ER_MEMORY' => 'Memory allocation failure',
    'ZIPARCHIVE::ER_CHANGED' => 'Entry has been changed',
    'ZIPARCHIVE::ER_COMPNOTSUPP' => 'Compression method not supported.',
    'ZIPARCHIVE::ER_EOF' => 'Premature EOF',
    'ZIPARCHIVE::ER_INVAL' => 'Invalid argument',
    'ZIPARCHIVE::ER_NOZIP' => 'Not a zip archive',
    'ZIPARCHIVE::ER_INTERNAL' => 'Internal error',
    'ZIPARCHIVE::ER_INCONS' => 'Zip archive inconsistent',
    'ZIPARCHIVE::ER_REMOVE' => 'Can\'t remove file',
    'ZIPARCHIVE::ER_DELETED' => 'Entry has been deleted',
    );
    $errmsg = 'unknown';
    foreach ($zipFileFunctionsErrors as $constName => $errorMessage) {
    if (defined($constName) and constant($constName) === $errno) {
    return 'Zip File Function error: '.$errorMessage;
    }
    }
    return 'Zip File Function error: unknown';
    }

    $zip = zip_open($zip_file);
    if (!is_resource($zip)) {
    die(zipFileErrMsg($zip));
    }

    link : http://fr2.php.net/manual/fr/function.z ... .php#75840
     
Chargement...
Similar Threads - Copier fichier répertoire Forum Date
Copier le site du .fr sur le .ch : bonne idée ? Référencement international (langues, pays) 11 Septembre 2020
Comment empêcher les gens de faire du copier coller ? Débuter en référencement 21 Janvier 2018
copier texte sans plagier Référencement Google 6 Mai 2017
Copier des articles dans 1 forum = duplicate content ? Débuter en référencement 21 Février 2017
Copier le SSL d'un mutualisé OVH sur un VPS Administration d'un site Web 10 Août 2016
Un site entièrement Copier/Coller d'articles du web : Plagiat Problèmes de référencement spécifiques à vos sites 31 Mai 2016
Copier coller Débuter en référencement 13 Février 2016
Peut-on copier les noms des rubriques des annuaires ? Débuter en référencement 22 Février 2015
Copier Début d'Article avec lien de redirection externe Débuter en référencement 12 Novembre 2014
Ces sites de petites annonces qui vous proposent de copier vos annonces Débuter en référencement 27 Septembre 2013