Code : Tout sélectionner
$contents = svn_cat ( $url . '/trunk/French/number_entries_and_references.csv', 0 );
echo exec('svn cat'.$contents.'>>test.csv');
if (isset ( $_POST ['download'] )) {
$the_folder = './tmp/';
$zip_file_name = 'archived_name.zip';
$download_file = true;
$delete_file_after_download = true;
class FlxZipArchive extends ZipArchive {
public function addDir($location, $name) {
$this->addEmptyDir ( $name );
$this->addDirDo ( $location, $name );
} // EO addDir;
private function addDirDo($location, $name) {
$name .= '/';
$location .= '/';
// Read all Files in Dir
$dir = opendir ( $location );
while ( $file = readdir ( $dir ) ) {
if ($file == '.' || $file == '..')
continue;
// Rekursiv, If dir: FlxZipArchive::addDir(), else ::File();
$do = (filetype ( $location . $file ) == 'dir') ? 'addDir' : 'addFile';
$this->$do ( $location . $file, $name . $file );
}
} // EO addDirDo();
}
$za = new FlxZipArchive ();
$res = $za->open ( $zip_file_name, ZipArchive::CREATE );
if ($res === TRUE) {
$za->addDir ( $the_folder, basename ( $the_folder ) );
$za->close ();
} else {
echo 'Could not create a zip archive';
}
if ($download_file) {
ob_get_clean ();
header ( "Pragma: public" );
header ( "Expires: 0" );
header ( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
header ( "Cache-Control: private", false );
header ( "Content-Type: application/zip" );
header ( "Content-Disposition: attachment; filename=" . basename ( $zip_file_name ) . ";" );
header ( "Content-Transfer-Encoding: binary" );
header ( "Content-Length: " . filesize ( $zip_file_name ) );
readfile ( $zip_file_name );
$za->close ();
}
}
mais là j'ai un problème avec mon bouton download qui récupére les valeurs de ce select
if (isset ( $_POST ['search'] )) {
echo '<select multiple name="resultat[]" >';
$type_cat_result_selected = $_POST ['type_cat_result'];
$result = svn_ls ( $url . '/trunk/' . $langue . '/' . $type_catt . '/' . $type_cat_result_selected );
foreach ( $result as $element => $name ) {
echo "<option value=" . $url . '/trunk/' . $langue . '/' . $type_catt . '/' . $type_cat_result_selected . $element . ">" . $element . "</option>\n";
}
}
echo '</select>';
// print_r ( $result );
if (isset ( $_POST ['resultat'] )) {
echo 'begin ->';
$resultat = $_POST ['resultat'];
foreach ( $resultat as $item ) {
echo $item;
mkdir ( '/tmp/' );
// chown('/tmp1','root');
svn_checkout ( $item, dirname ( __FILE__ ) . '/tmp/' );
}
echo '<-End';
}
Quand on clique sur le bouton download, ça commence directement le téléchargement sans récuprer les valeurs du Select et du coup j'ai une archive vide.
<?php
if (isset ( $_POST ['download'] )) {
if (isset ( $_POST ['resultat'] )) {
$resultat = $_POST ['resultat'];
//print_r ( $resultat );
if (isset ( $_POST ['type_cat_result'] )) {
$type_cat_result_selected = $_POST ['type_cat_result'];
if ($type_cat_result_selected == "All") { //si c'est un dossier
foreach ( $resultat as $item ) {
mkdir (dirname ( __FILE__ ) . '/temp' );
echo 'folder';
echo $item;
svn_checkout ( $item, dirname ( __FILE__ ) . '/temp' );
}
} else {//Si c'est des fichiers à télécharger
echo 'file';
foreach ( $resultat as $item ) {
echo $item.'<br> ';
exec('svn export '.$item.' '.dirname ( __FILE__ ) . '/temp');
// svn_export ( $item, "/home/sirpapy/Documents/temp" );
}
}
}
}
$the_folder = './tmp/';
$zip_file_name = 'archived_name.zip';
$download_file = true;
class FlxZipArchive extends ZipArchive {
/**
* Add a Dir with Files and Subdirs to the archive;;;;; @param string $location Real Location;;;; @param string $name Name in Archive;;; @author Nicolas Heimann;;;; @access private *
*/
public function addDir($location, $name) {
$this->addEmptyDir ( $name );
$this->addDirDo ( $location, $name );
} // EO addDir;
private function addDirDo($location, $name) {
$name .= '/';
$location .= '/';
// Read all Files in Dir
$dir = opendir ( $location );
while ( $file = readdir ( $dir ) ) {
if ($file == '.' || $file == '..')
continue;
// Rekursiv, If dir: FlxZipArchive::addDir(), else ::File();
$do = (filetype ( $location . $file ) == 'dir') ? 'addDir' : 'addFile';
$this->$do ( $location . $file, $name . $file );
}
} // EO addDirDo();
}
$za = new FlxZipArchive ();
$res = $za->open ( $zip_file_name, ZipArchive::CREATE );
if ($res === TRUE) {
$za->addDir ( $the_folder, basename ( $the_folder ) );
$za->close ();
} else {
echo 'Could not create a zip archive';
}
if ($download_file) {
ob_get_clean ();
header ( "Pragma: public" );
header ( "Expires: 0" );
header ( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
header ( "Cache-Control: private", false );
header ( "Content-Type: application/zip" );
header ( "Content-Disposition: attachment; filename=" . basename ( $zip_file_name ) . ";" );
header ( "Content-Transfer-Encoding: binary" );
header ( "Content-Length: " . filesize ( $zip_file_name ) );
readfile ( $zip_file_name );
$za->close ();
}
}
echo 'end';
?>