Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 2015
-
1 oct. 2005 à 13:12
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 2015
-
8 oct. 2005 à 18:55
Bonjour a tous.
J'aimerai savoir s'il est possible de récupéré la taille d'un fichier local d'une personne.
Simplement la taille.
Si c'est possible comment puis-je faire ?
Merci d'avance
Blacknight91Titi
La tristesse envahit ce monde peu a peu, rongeant maison par maisons ces occupants Elle inspire la tristesse sans que personne
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 1 oct. 2005 à 15:41
Bonjour,
ça dépend...
généralement si c'est pour contrôler la
taille d'un fichier à transmettre
dans le formulaire où est l'input type="file", ça suffit.
sinon, on peut récupérer "facilement" la taille d'un
fichier image : name formulaire.name input file.fileSize
et de toute manière avec FileSystemObject on obtient
ce qu'on veut... hélas uniquement avec Windows+
Internet Explorer.
plus d'infos ?
Cordialement. Bul.
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 1 oct. 2005 à 17:06
Salut
Merci pour ta réponse.
Voici enfait se que je veux faire.
Sur mon site il est possible de poster des videos (même genre que sur code source, des tutoriaux en video)
J'ai donc pensé lors du post a faire une barre de chargement pour animer un peu l'upload.
Voici mon raisonement.
Lors du post du formulaire contenant un champ type file une popup est ouvert.
Il faudrai que juste avant je puisse récupéré la taille du fichier choisit en local (puisqu'il n'est pas encore placé sur le site).
Ensuite pourquoi pas l'envoyer en GET dans la popup.
Pendant que la formulaire est envoyé et donc que la video s'upload un setTimer s'effectue dans la popup appellant une page qui renvoi la taille uploader (ou s'il existe un moyen de ne pas apeller une page pour sa c'est encore mieux), pour sa il suffit de se servir en php de la fonction filesize(url); qui renvoi la taille du fichier.
Donc a partir de la je dispose de la taille total ainsi que la taille uploader.
Avec ceci je créer ma barre de poucentage tout simplement.
La récupération de la taille en local servirai aussi a fixé une limite en taille du post (free limite un post a 2Mo il me semble)
Voila voila
Je n'ai pas tout a fait compris se que tu me porpose...
Pourrai plus détaillé ?
Merci d'avance.
Blacknight91Titi
La tristesse envahit ce monde peu a peu, rongeant maison par maisons ces occupants Elle inspire la tristesse sans que personne
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 2 oct. 2005 à 09:41
Bonjour
J'ai trouver une source assez intéréssante :
http://www.javascriptfr.com/code.aspx?id=18981 Mais la ligne :
var fso = new ActiveXObject("Scripting.FileSystemObject");
N'a pas l'air de fonctioner.
IE me renvoi "Un composant ActiveX ne peut pas créer un objet"
Voici le code que j'ai mis :
var fso = new ActiveXObject("Scripting.FileSystemObject");
var ts = fso.GetFile(document.a_video.file.value);
var lg = ts.Size;
alert(lg)
Le code est mis dans une fonction qui est apeller lorsque l'on valide le formulaire.
Après ce code j'envoi le formulaire avec
document.a_video.submit();
As tu une idée de pourquoi la création de l'ActiveX ne marche pas ?
Blacknight91Titi
La tristesse envahit ce monde peu a peu, rongeant maison par maisons ces occupants Elle inspire la tristesse sans que personne
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 2 oct. 2005 à 17:46
Salut
Tout d'abord merci pour ta réponse.
J'ai compris qu'il faut utiliser une iframe ou mettre le formulaire et envoyé celui ci.
C'est possible de ne "rafraichir" que la iframe lors de l'envoi du formulaire ?
Car de ce coté je n'ai pas bien compris.
Pour la création de la barre d'upload je pense savoir comment faire la dessus.
Comme c'est en anglais j'ai pas mal de mal a traduire vu mon niveau d'anglais....
Pourai tu me décrire un peux plus comment cela se passe ?
Merci d'avance
Blacknight91Titi
La tristesse envahit ce monde peu a peu, rongeant maison par maisons ces occupants Elle inspire la tristesse sans que personne
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 2 oct. 2005 à 17:59
J'ai pas encore chercher à reproduire le truc, j'ai juste noté le lien pour y regarder plus tard ;)
Mais d'aprés ce que j'ai compris.
l'iframe contient le champ input type="file" (c'est la que j'ai pas pigé le code quand j'ai regardé vite fait) ensuite quand tu envoie le fichier tu envoie juste l'iframe et te laisse pas mal de choses en javascript, genre une fonction beginUpload qui ferait ca (c'est plus facile à expliquer en pseudo code qu'en francais ;))
function beginUpload()
{
sendIframe();
var intervall = setInterval(function(){Ajax.request('page.aspx', $('info'))}, 1000)
}
avec la function ajax.request qui envoie une requete vers page.aspx et ecrit le résultat dans un div d'id info.
Ensuite coté serveur, lorsque l'iframe arrive avec son champ file, on peut determiner la taille du fichier, de suite on met la taille dans une variable session, ainsi que réguliérement la nombre d'octet transferé...
ensuite quand on fait la requete sur page.aspx cela nous renvoie une phrase avec le nombre d'octets transferé et le nombre d'octet total a emettre ...
Ce qui me bloque pour l'instant, c'est comment ils font pour envoyer l'iframe (rien de bien compliqué) mais surtout comment faire pour connaitre l'etat d'avancement du transfert ... et la je me suis jamais posé la question mais ca doit être marrant :d
mais déjà tu travailles avec quelle technologie ? moi je vais faire un controle faisant ca pour asp.net quand j'aurais le temps, par contre si c'est du php alors la aucune idée.
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 2 oct. 2005 à 18:13
Pour la technologie j'utilise Php ou j'insère dedan du javascript quand j'en est besoin.
Pour l'avancement du transfert il faut simplement je pense récupéré la taille total du fichier ainsi que la taille actuelle.
Après suffit de transformer sa en %age
Pour la taille d'un fichier coté server il suffit d'utiliser sa :
filesize(url);
Sinon pour l'envoi de iframe cela ne reactualise que l'iframe donc ?
Et donc envoi le fichier.
Dans ces cas la j'en reviens a la même question c'est de comment faire pour récupéré la taille du fichier.
Car avec php on ne poura avoir la taille du fichier que une fois celui ci uploader.....
Question envoyé une variable a une page puis que celle ci nous la renvoi je sais pas trop comment faire.....
Blacknight91Titi
La tristesse envahit ce monde peu a peu, rongeant maison par maisons ces occupants Elle inspire la tristesse sans que personne
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 2 oct. 2005 à 18:24
vivi ... c'est aussi la question que je me suis posé quand j'ai vu le code, envoyer le fichier etc... rien de compliqué mais coté serveur comment connaitre le nombre d'octet recu avant la fin du transfert :p
mais la a mon avis ca depasse le cadre de javascript, donc un petit tour sur www.phpcs.com serait le bienvenu je pense ;)
selon : mir.aculo.us :
But you can use AJAX to get information on the running upload, as long as your framework has functions that give information on current uploads; and your webserver doesnt buffer upload data.
In Ruby on Rails that works like this: If you enable the UploadProgress module, Rails stores information about the progress in the session, so while the upload is doing its thing, you can poll the server via an AJAX call and get nice status information. The Upload itself is made via a traditional HTML upload form to a hidden IFRAME (the helpers will do all this hard work for you transparently!).
bon c'est possible si tu utilises Ruby on Rails ;) aprés va falloir lire le code de Ruby pour voir comment ils font :p
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 2 oct. 2005 à 18:44
euh ? je pige plus trop la
<q>"Car avec php on ne poura avoir la taille du fichier que une fois celui ci uploader....."</q>
C'est bien la qu'est le problème ? car nous il nous faut la taille qui a déjà été envoyé, c'est comme si tu avais 2 threads, l'un pour le transfert du fichier, et un autre qui va regarder à intervalle régulier combien d'octects a été recus.
et d'aprés ce que je vois le problème est le meme en php et asp, on ne peut pas facilement savoir le nombre d'octect en cours de transfert. Donc ton problème est desormais un problème de php et plus de javascript ?
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 2 oct. 2005 à 18:48
Mon problème est javascript car au départ je voulais récupéré la taille d'un fichier en local pour aisni fixer une limite et avoir la taille total du fichier a transféré
Avec php je peux avoir la taille total mais que une fois le fichier uploader en entier
Avec la fonction filesize() on peut récupéré la taille d'un fichier meêm s'il n'est pas complet
Mais évidement que coté server donc sa sa serai pour avoir le nomrbe d'octet transféré
Conclusion il me manque juste le nombre d'octet du fichier total.
Et c'est donc la l'info qu'il me manque sur le fichier.
Blacknight91Titi
La tristesse envahit ce monde peu a peu, rongeant maison par maisons ces occupants Elle inspire la tristesse sans que personne
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 2 oct. 2005 à 19:00
ben si tu peux recuperer la taille du fichier meme si pas complet, il suffit de mettre ca dans une variable session et faire une page qui n'affiche que ca.
en pseudo code ca donne ceci
dans la page d'upload
session("fileSize") = filesize();
ensuite tu créer une page vide (par exemple fileSize.php) et tu fais juste un
response.write(session("fileSize"))
et le seule texte de fileSize.php devra etre juste la taille du fichier !!!
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 2 oct. 2005 à 19:22
ah ba je sais pas :d
la seule chose que je sais de php c'est <? php echo "hello world" ?> :)
Mais je ne vois pas pourquoi tu veux absolument recuperer la taille du fichier complet avant la fin ? comment tu va faire aprés pour avoir ton avancement ?
Au contraire si ca te donne la nombre d'octet déjà transferé t'aura juste à faire plusieurs requetes avec un setintervalle par exemple
var CheckProgress = function()
{
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 2 oct. 2005 à 19:32
Je ne souhaite pas simplement dire (vous avez envoyé X octet) mais faire une barre d'upload en poucentage.
Donc il faut bien que je me base sur une taille max pour dire qu'il est a 100%
Sinon sa n'affichera que le nombre d'octet envoyer mais cela n'indiquera pas combien il en reste par exemple.
Car pour la taille du fichier complet après l'upload il existe une fonction php permetant de donner la taille uploader, mais ce seulement après l'upload, moi je cherche a le récupéré avant, et donc j'avasi penser récupéré la tailel du fichier localement avec l'ur fournit dans le champs de fichier.
Enfait faire a peu près comme sur l'exemple donner.
Faire une barre d'avancement lors du transfert.
Je n'ai pas bien compris le fonctionement de la technologie Ajax.
Donc se qu'il me manque c'est bien la taille complète du fichier avant sont transfert.
Et donc c'est pour sa que j'ai pensé au javascript car celui ci s'éxécute coté client alros que php c'est coté server donc il ne poura me fournir de renseignement que du coté server et donc après l'upload.
Il y a un endroit ou télécharger l'exemple que tu m'a montrer pour que j'étudie sa ?
Blacknight91Titi
La tristesse envahit ce monde peu a peu, rongeant maison par maisons ces occupants Elle inspire la tristesse sans que personne
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 2 oct. 2005 à 19:57
oula.
Comment veux tu faire pour afficher une barre en pourcent ?
Pour cela il te faut plusieurs choses. la taille du fichier total qui correspond à 100% et aussi le nombre d'octet transferé !!! sinon comment veux tu savoir si tu es à 10% ?
En javascript, il n'y a aucun moyen de connaitre le nombre d'octet transferé ni meme le nombre d'octet total à transferé !!!
Ajax, permet de faire des requetes via javascript, et tu peux recuperer le contenu d'une page et traiter le resultat par javascript.
C'est donc pour ca que l'exemple utilise Ajax.
dans l'exemple ils envoient le fichier, et en meme temps que l'envoie se fait il y a plein de petite requete qui permet de recuperer le nombre d'octet transferé ... à partir de la tu va pouvoir calculer un %age ...