par
kevin254kl » 18 juil. 2016, 15:36
Bonjour à tous,
J'ai crée un script qui va à partir de fichiers me construire un zip, après cela il le télécharge en javascri^pt sur le client puis en ajax le détruit.
Code : Tout sélectionner
// Partie zip
//fonction permettant de créer le zip
function zip(num_affaire,id_dm)
{
requete = CreerRequete();
if (requete)
{
requete.open("GET", "formulaire/fichier/zip.php?num_affaire="+num_affaire+"&id_dm="+id_dm, false);
requete.send();
download_zip(num_affaire);
}
}
//fonction permettant de télécharger le zip
function download_zip(num_affaire)
{
var url = "formulaire/fichier/"+num_affaire+".zip";
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
if(http.status!=404)
{
window.location = url;
setTimeout(function(){ delete_zip_on_server(num_affaire)}, 6000);
}
}
//fonction permettant la suppression
function delete_zip_on_server(num_affaire)
{
requete = CreerRequete();
if (requete)
{
requete.open("GET", "formulaire/fichier/delete_zip.php?num_affaire="+num_affaire, false);
requete.send();
}
}
pour le php :
Code : Tout sélectionner
<?php
include("../../../../connexion.php");
$zip = new ZipArchive;
$file = $_GET['num_affaire'].'.zip';
$res = $zip->open($file, ZipArchive::CREATE);
/*
Séléction des fichiers de l'affaire
*/
$req_fichier = "SELECT *
FROM POP_FICHIER_DM
WHERE ID_DM = :iddm";
$stmt = oci_parse($conn, $req_fichier);
oci_bind_by_name($stmt,':iddm', $_GET['id_dm'],OCI_B_INT);
oci_execute($stmt);
/*
Ajout des fichiers dans le zip
*/
while($fichier= oci_fetch_assoc($stmt))
{
$requete4 = "SELECT TYPE_FICHIER_DM,FICHIER_DM,LABEL_FICHIER_DM
FROM POP_FICHIER_DM
WHERE ID_FICHIER_DM = ".$fichier['ID_FICHIER_DM'];
$statement4 = oci_parse($conn, $requete4);
oci_execute($statement4,OCI_COMMIT_ON_SUCCESS);
$list4 = oci_fetch_assoc($statement4);
$fichier_data = $list4['FICHIER_DM']->load();
$zip->addFromString($fichier['LABEL_FICHIER_DM'], $fichier_data);
}
$zip->close();
oci_free_statement($stmt);
oci_free_statement($statement4);
?>
ce code fonctionne très bien seul problème, par contre quand je change la base de données si je clique pour télécharger le zipp j'ai
Code : Tout sélectionner
dm.js:347 HEAD http://ami2-sv10029/pop_maj/module/demande/formulaire/fichier/DL%20C02089220-004.zip 404 (Not Found) qui vient de
Code : Tout sélectionner
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
if(http.status!=404)
{
window.location = url;
setTimeout(function(){ delete_zip_on_server(num_affaire)}, 6000);
} le zip n'ai crée. Logiquement je change juste mon fichier de connexion à la base de données je ne comprend pas pourquoi le zipp ne se créer pas. Auriez vous un conseil pour m'aider à localiser le problème? Merci à vous.
Bonjour à tous,
J'ai crée un script qui va à partir de fichiers me construire un zip, après cela il le télécharge en javascri^pt sur le client puis en ajax le détruit.
[code]// Partie zip
//fonction permettant de créer le zip
function zip(num_affaire,id_dm)
{
requete = CreerRequete();
if (requete)
{
requete.open("GET", "formulaire/fichier/zip.php?num_affaire="+num_affaire+"&id_dm="+id_dm, false);
requete.send();
download_zip(num_affaire);
}
}
//fonction permettant de télécharger le zip
function download_zip(num_affaire)
{
var url = "formulaire/fichier/"+num_affaire+".zip";
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
if(http.status!=404)
{
window.location = url;
setTimeout(function(){ delete_zip_on_server(num_affaire)}, 6000);
}
}
//fonction permettant la suppression
function delete_zip_on_server(num_affaire)
{
requete = CreerRequete();
if (requete)
{
requete.open("GET", "formulaire/fichier/delete_zip.php?num_affaire="+num_affaire, false);
requete.send();
}
}
[/code]
pour le php :
[code]<?php
include("../../../../connexion.php");
$zip = new ZipArchive;
$file = $_GET['num_affaire'].'.zip';
$res = $zip->open($file, ZipArchive::CREATE);
/*
Séléction des fichiers de l'affaire
*/
$req_fichier = "SELECT *
FROM POP_FICHIER_DM
WHERE ID_DM = :iddm";
$stmt = oci_parse($conn, $req_fichier);
oci_bind_by_name($stmt,':iddm', $_GET['id_dm'],OCI_B_INT);
oci_execute($stmt);
/*
Ajout des fichiers dans le zip
*/
while($fichier= oci_fetch_assoc($stmt))
{
$requete4 = "SELECT TYPE_FICHIER_DM,FICHIER_DM,LABEL_FICHIER_DM
FROM POP_FICHIER_DM
WHERE ID_FICHIER_DM = ".$fichier['ID_FICHIER_DM'];
$statement4 = oci_parse($conn, $requete4);
oci_execute($statement4,OCI_COMMIT_ON_SUCCESS);
$list4 = oci_fetch_assoc($statement4);
$fichier_data = $list4['FICHIER_DM']->load();
$zip->addFromString($fichier['LABEL_FICHIER_DM'], $fichier_data);
}
$zip->close();
oci_free_statement($stmt);
oci_free_statement($statement4);
?>
[/code] ce code fonctionne très bien seul problème, par contre quand je change la base de données si je clique pour télécharger le zipp j'ai [code]dm.js:347 HEAD http://ami2-sv10029/pop_maj/module/demande/formulaire/fichier/DL%20C02089220-004.zip 404 (Not Found)[/code] qui vient de [code]var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
if(http.status!=404)
{
window.location = url;
setTimeout(function(){ delete_zip_on_server(num_affaire)}, 6000);
}[/code] le zip n'ai crée. Logiquement je change juste mon fichier de connexion à la base de données je ne comprend pas pourquoi le zipp ne se créer pas. Auriez vous un conseil pour m'aider à localiser le problème? Merci à vous.