copier un fichier dans un répertoire zip sur ftp avec php
14 messages
• Page 1 sur 1
-

jer2701 - WRInaute occasionnel

- Messages: 338
- Inscription: 2 Sep 2005
copier un fichier dans un répertoire zip sur ftp avec php
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,
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,
- bixi
- WRInaute discret

- Messages: 70
- Inscription: 19 Sep 2007
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
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
-

jer2701 - WRInaute occasionnel

- Messages: 338
- Inscription: 2 Sep 2005
Oui et j'ai bien fais la lecture ...
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 !??
je précise que les extensions zlib sont bien activés
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 !??
je précise que les extensions zlib sont bien activés
-

nickargall - WRInaute accro

- Messages: 6468
- Inscription: 13 Juin 2005
C'est normal les trois signes "egal" dans ta condition ??? moi j'en aurais mis que deux.
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, ...)
- Code: Tout sélectionner
$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, ...)
-

nickargall - WRInaute accro

- Messages: 6468
- Inscription: 13 Juin 2005
bon ben alors je vois pas
ps: j'ai édité mon post pendant que tu répondais
ps: j'ai édité mon post pendant que tu répondais
- bixi
- WRInaute discret

- Messages: 70
- Inscription: 19 Sep 2007
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 (
), 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
genre /home/tonsite/www/zips/test.zip
edit: en lisant la doc (
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
14 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Déplacer un dossier ou un fichier d'un serveur FTP a un autre serveur FTP en php ???
- upload ftp via PHP > fichier incomplet
- copier depuis ftp
- Fichier aléatoire php dans un répértoire
- Wordpress : impossible de copier sur mon FTP
- php lister un repertoire mais pas tout les fichier
- Copier un repertoire image sur plusieurs sites.
- Supprimer un repertoire non vide par FTP
- Zipper un répertoire sur un serveur FTP à distance
- pointer un sous domaine vers un répertoire de mon ftp
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités
