Accueil > Forum > > > > Problème lors du download de fichiers stockés
Problème lors du download de fichiers stockés
vendredi 4 février 2011 à 17:21:19 |
Problème lors du download de fichiers stockés

beth2611
|
Bonjour,
je rencontre un soucis, plutot dérangeant. Suite a de multiples tests (traces wireshark, comparaison avant/après...), j'ai pu constater que le fichier contenait 2 octets supplémentaires suite a :
Code PHP : header("Content-Type: $content_type");
//header("Content-Description: File Transfer");
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($source));
header("Content-Disposition: attachment; filename=$name_file");
readfile($source);
Je voudrais savoir si quelqu'un a déjà rencontré ce problème et s'il a trouvé une solution, ou au moins une voie dans laquelle je pourrai chercher.
Merci par avance
|
|
samedi 5 février 2011 à 13:17:54 |
Re : Problème lors du download de fichiers stockés

genetApt151
|
Salut,
chez moi pas de problème, mais c'est quoi que tu appelles 'comparaison avant/après'?
Pour vérifier intégrité des fichiers il faut utiliser un checksum.
Ex:
echo crc32(file_get_contents($source));
echo md5(file_get_contents($source));
|
|
lundi 7 février 2011 à 09:32:58 |
Re : Problème lors du download de fichiers stockés

beth2611
|
J'appelle la comparaison avant après, le poids du fichier sur le serveur, et poids du fichier après download. Il y a 2 octets qui se rajoutent.
Linux le remarque, mais n'y prete pas attention. En revanche, si le download se fait depuis un windows, le logiciel de décryptage utilisé refuse de faire son travail, a cause des 2 '%0A' inséré lors du téléchargement.
|
|
lundi 7 février 2011 à 11:00:42 |
Re : Problème lors du download de fichiers stockés

beth2611
|
Alors,
avec la fonction crc32 :
- le fichier sur le serveur : 3977771918
- le fichier téléchargé depuis un linux : 3977771918
- le fichier téléchargé depuis un windows : 3565969453
le fichier fait 1 978 494 octets sur le serveur. Sur windows après download, il en fait 1978496.
|
|
lundi 7 février 2011 à 11:34:28 |
Re : Problème lors du download de fichiers stockés

TychoBrahe
|
Salut,
a cause des 2 '%0A' inséré lors du téléchargement
Étrange d'avoir deux sauts de ligne en plus, surtout sans retour chariot. Tu es sur que c'est n'est pas un %0D suivi d'un %0A ?
Il y a moyen de voir ton code intégralement stp ?
|
|
lundi 7 février 2011 à 13:01:12 |
Re : Problème lors du download de fichiers stockés

beth2611
|
Code PHP : <?php
session_start();
$name_file = $_GET['name'];
require 'fonction.php';
include ("variables.inc");
connexion();
$id = $_GET['id'];
$type_doc = $_GET['type'];
if(strcmp($type_doc, "tkt") == 0){
$req = mysql_query($requete);
$db_name = mysql_fetch_row($req);
}else if(strcmp($type_doc, "doc") == 0){
$req = mysql_query($requete);
$db_name = mysql_fetch_row($req);
}else if(strcmp($type_doc, "log") == 0){
$req = mysql_query($requete);
$db_name = mysql_fetch_row($req);
}else $db_name[0] = $file_log;
$source = str_ireplace("%2F", "/", $db_name[0]);
$content_type = mime_content_type($name_file);
if(!$content_type || strcmp($content_type, "") == 0) $content_type = "application/octet-stream";
header("Content-Type: $content_type");
//header("Content-Description: File Transfer");
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($source));
header("Content-Disposition: attachment; filename=$name_file");
readfile($source);
$conn = $_SESSION['type'];
if(strcmp($type_doc, "doc") == 0 || strcmp($type_doc, "log") == 0 || (strcmp($type_doc, "tkt") == 0 && strcmp($conn, "clt") == 0)){
$date = date("d/m/Y H:i");
$id_u = $_SESSION["id_user"];
$req = mysql_query($requete2);
while ($res = mysql_fetch_array($req)){
$nom = decode($res["$Nom"])." ".decode($res["$Prenom"]);
}
if(strlen($nom) == 0 && strcmp($type_doc, "log") == 0) $nom = "Customer";
else if(strlen($nom) == 0 && strcmp($type_doc, "doc") == 0 ) $nom = "Unknown";
if(strcmp($type_doc, "log") == 0) $type = "Versions";
else $type = "Documents";
$text = "$date;$type;$name_file;$nom\n";
$descriptor = fopen($file_log, "a+");
fwrite($descriptor, "$text");
fclose($descriptor);
flush();
}
?>
C'est le code de la page...
|
|
vendredi 11 février 2011 à 11:38:54 |
Re : Problème lors du download de fichiers stockés

beth2611
|
Petit complément d'information,
Donc en fait, ce n'est pas un problème d'OS, mais un problème de navigateur.
Je fais habituellement mes tests sur linux, avec Google Chrome.
Je n'ai aucun soucis dans ce cas.
J'ai testé sur un Windows, avec Google Chrome, IE aucun problème.
J'ai essayé avec Firefox, et le problème s'est posé. J'ai alors décidé de tester avec firefox sur linux, et la, exactement la meme erreur que sur windows...
Firefox étant quand meme un navigateur très utilisé, je dois trouver une solution...
Si vous avez des idées, je suis toute ouie
|
|
vendredi 11 février 2011 à 12:17:40 |
Re : Problème lors du download de fichiers stockés

TychoBrahe
|
Salut,
Étrange ceci, je n'ai pas le moindre problème chez moi avec firefox. Quelques pistes de recherche :
1. Enlève tout ce qui n'est pas nécessaire afin d'isoler le problème (j'ai du le faire afin que ça fonctionne chez moi vu que je n'ai pas tout ton environnement de travail et ça fonctionne).
2. Nettoie ton code, il y a beaucoup de trucs en double ou mal faits.
3. Test si l'utilisateur à bien fournis toutes les informations.
Sans le readfile() tu ne dois avoir aucune sortie, vérifie bien ça. Le moindre warning ou la moindre notice peux corrompre les données transmises.
|
|
vendredi 11 février 2011 à 13:15:54 |
Re : Problème lors du download de fichiers stockés

beth2611
|
Justement, je n'ai aucun warning...
Bon, d'après moi, c'est problème entre le serveur et firefox, parce que j'ai testé en localhost, et... ca passe nickel...
je test différentes propositions trouvées sur le net
|
|
Cette discussion est classée dans : problème, fichiers, header, download, content
Répondre à ce message
Sujets en rapport avec ce message
Problème de header("Content-type: image/jpeg") [ par clemthecool ]
Salut à tous,j'ai un 'ti soucis au niveau de l'affichage de mes utilisateurs inscrits dans mon annuaire LDAP.Mon annuaire marche correctement et j'arr
Redirection apres avoir forcer le download [ par ASPerix ]
Bonjour,J'ai une page 'download.php' avec le code:header("Content-disposition: attachment; filename=".$nom_fichier);header("Content-Type: application/
FORCER LE TELECHARGEMENT D UNE VIDEO DISTANTE [ par zzzzzz ]
Salut donc j'aimerai forcer le telechargement d'une video distante. C'est a dire que la fenetre Open Save as ect... s'ouvre, et non pas que la video s
telechargement multiple [ par mortiis ]
Bonjour à tousJe fait un site ou il est possible de télécharger des fichiers.Je le fait par download forcé.Je me demandais s'il étais possible de fair
la fonction header() [ par knas74 ]
nasj'ai un problème avec la fonction header() lorsque je l'utilise j'ai ce message d'erreur qui s'affiche:Warning: Cannot modify header information -
Fichier .htaccess et function header() [ par Bestgamer ]
Bon j'ai un problème avec mon fichier .htaccess et la fonction header() de php.code dans mon fichier .htaccess :ErrorDocument 404 http://localhost/por
[Problème] Lecture de fichiers dans un certain ordre... [ par Nightm4re ]
Bonjour à tous,j'utilise les fonction opendir(), puis readdir() afin de lire les fichiers d'un répertoire. Le problème, c'est que tout est lu dans un
download fichiers [ par pcjst ]
PcJsTmon site est sur le serveur chez xmes fichiers que les visiteurs peuvent télécharger sont sur le serveur chez YJe veux que lorsque le visiteur va
probleme de téléchargement de fichier(PHP) [ par wakla ]
Bonjour,J'ai un petit probleme quand je télécharge un fichier?En fait ça marche très bien avec les fichiers pdf. C'est avec les images que ça marche p
header + rawurlencode [ par babybutt ]
salut tout le mondej'ai un petit problème =(j'ai un fichier pdf qui contient un une quote ' ("d'utilisation.pdf")et dans j'utilise un header pour l'ou
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|