Problème avec un script d'upload de fichiers => progressbar

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec un script d'upload de fichiers => progressbar

Re: Problème avec un script d'upload de fichiers => progressbar

par sam12 » 30 juil. 2011, 23:18

Upload php et je suis passé par un loader en .gif abandonnant l'idée du pourcentage (impossible à faire sans APC ou java etc...).
Au clic sur submit, un loader s'affiche pendant la durée de l'upload et à la fin, le loader disparait. Je verrais si je le mets vert avec écrit upload 100% (à voir).

Voilà ;)

Re: Problème avec un script d'upload de fichiers => progressbar

par Skw33d » 30 juil. 2011, 23:15

J'ai vu que tu as marqué ton sujet résolu, finalement tu as opté pour quel solution ? Pour ceux qui chercheront plus tard ça sera cool si ils peuvent savoir ce que tu as fait finalement ;)

Re: Problème avec un script d'upload de fichiers => progressbar

par sam12 » 23 juil. 2011, 21:37

Finalement l'APC n'est pas accepté.
Une solution?

merci ;)

Re: Problème avec un script d'upload de fichiers

par sam12 » 22 juil. 2011, 12:27

Parles-tu de submit form with frame target?
A vrai dire, je me suis tapé un peu toute la doc fr/us sur l'upload (enfin la progressbar) en ajax mais franchement je n'ai rien trouvé. Je pense que même si j'étais tombé sur le bon code, il aurait fallu modifié au mieux 1 ligne et vu que j'y connais rien...

Re: Problème avec un script d'upload de fichiers

par Skw33d » 22 juil. 2011, 05:13

Ok on peut faire ça avec la technologie Ajax : PHP et Javascript.
On en parles ici :
http://www.xorax.info/blog/programmatio ... -file.html (La deuxième solution semble pas mal)

Il y a plusieurs tutoriels sur le net qui t'explique comment utiliser Ajax, même sans grande notion de javascript.

Re: Problème avec un script d'upload de fichiers

par sam12 » 22 juil. 2011, 04:49

Non j'ai limité à 200mo, limite de mon post_max_size (enfin chez e-cliking).
Tant que l'upload n'est pas terminé, le script tourne et garde le input du form avec le chemin où est le fichier.

Si tu connais 1 hébergeur avec plus de 200mo, n'hésites pas à me le dire. Pour l'instant, mon soucis est surtout pour la progressbar indiquant que l'upload se déroule bien. Sinon la seule solution que j'aurais est de mettre 1 anim "bidon".

Re: Problème avec un script d'upload de fichiers

par Skw33d » 22 juil. 2011, 04:41

Ah mais ton script coté PHP te permet maintenant d'uploadé des fichiers de 700 mo sans problème ?

Et donc actuellement, ça se passe comment ? Tant que le fichier n'est pas envoyé la page s’exécute ?

Re: Problème avec un script d'upload de fichiers

par sam12 » 22 juil. 2011, 04:11

Ton applet m'a fait buggué mon firefox :lol:
Personnellement je ne trouve pas ça très pro de prendre quelque chose de déjà fait et sans pouvoir modifier le code source ni encore moins l'adapter à son site.

Sinon mes problèmes se sont arrangés et maintenant ça ne buggue plus. Je comprends bien que c'est peut-être plus pratique de prendre 1 applet mais ça ne me plait pas (sans compter le message de sécurité à peine arrivé sur le script et l'installation du java obligatoire). Connais-tu beaucoup de sites proposant 1 applet à la place d'un script avec 1 progressbar?
Je pense que rajouter une progressbar ne doit pas être si compliqué que ça, c'est juste que je ne maitrise pas le js.

Merci ;)

Re: Problème avec un script d'upload de fichiers

par Skw33d » 22 juil. 2011, 03:58

Tiens voilà une applet super cool : http://sourceforge.net/projects/jupload/

Celle ci te permet pas de voir dans quel dossier va être upload le fichier, tu as une barre de progression..
Une petite démo ici : http://jupload.sourceforge.net/applet-b ... cture.html

Je te conseille vraiment de passer par une applet java, et je ne vois pas comment faire uniquement PHP. Trop de contraintes, ou qualité de l'upload instable. (tu l'as dit toi même : navigateur qui plante...)

L'applet en elle même utilise l'upload via PHP mais découpe le fichier, ce qui permet d'envoyer de gros fichiers.

Re: Problème avec un script d'upload de fichiers

par sam12 » 21 juil. 2011, 19:54

Le développement coté php est finit et fonctionne bien. Si l'ajax ne permet pas de faire une progressbar comment faire alors?
Es-tu sur que la limite upload_max_filesize est pour tous les fichiers en même temps? Si oui, ça va poser probleme.

Les applets java, je n'y ai rien compris et le flash est trop lourd.

Merci pour ta réponse.

Re: Problème avec un script d'upload de fichiers

par Skw33d » 21 juil. 2011, 19:05

En fait, je t'ai proposé un applet Java parce que à réaliser par PHP, c'est mission impossible. Pourquoi ?
memory_limit = 1280M (là je me demande si c'est réaliste sur 1 mutu)
Là faut voir avec ton hébergeur, mais ça m'étonnerait fort !

Pour faire une progressbar en Ajax, il faudrait que ton upload se déroule aussi en Ajax. Parce que si tu ne le fais pas en Ajax, et bien la page va s’exécuter, mais tant qu'elle aura pas fini de d'exécuter le script(donc d'uploadé le fichier) ben t'auras rien à l'écran. En gros l'utilisateur ne sais pas ce qui se passe, et on sait tous ce que fait un utilisateur normal quand il ne voit/comprend pas ce qui se passe : il ferme son navigateur.
Et pour l'upload en Ajax, je crois que c'est vraiment du bidouillage à cause d'un point de vue sécurité, donc ça devient pas très pratique.

Ensuite, le truc en passant par les fonctions PHP pour réaliser ceci c'est que si ta 2 ou 3 personnes qui se mettent à upload un film en même temps, ta limite upload_max_filesize va très rapidement être atteinte, et l'upload sera un échec pour les 3.

Ça en fait déjà pas mal, et je pense que j'en ai oublié donc passé par un applet java (flash peut être ?) serait vraisemblablement la solution.

Re: Problème avec un script d'upload de fichiers

par sam12 » 21 juil. 2011, 14:20

Bon visiblement ça n'intéresse plus personne mais je recherche toujours un moyen pour la progressbar. Si quelqu'un a une astuce, je suis preneur.

merci ;)

Re: Problème avec un script d'upload de fichiers

par sam12 » 18 juil. 2011, 12:20

Hop là me revoilà avec un script php qui marche (apparemment):
<form enctype="multipart/form-data" action="fileupload.php" method="post">
    Transfère le fichier <input type="file" name="monfichier" />
    <input type="submit"/>
</form>
<?php
if(isset($_FILES['monfichier']) and $_FILES['monfichier']['error'] == 0)
{
    $nomOrigine = $_FILES['monfichier']['name'];
    $elementsChemin = pathinfo($nomOrigine);
    $extensionFichier = $elementsChemin['extension'];
}
$extensionsAutorisees = array("flac", "txt","mp3", "mp4", "avi", "png", "jpg", "jpeg") ;
if(isset($extensionFichier))
{
    if(!(in_array($extensionFichier, $extensionsAutorisees)))
    {
        echo "<br/>Le fichier n'a pas l'extension attendue";
    }
    else
    {   
        $repertoireDestination = "FileUpload/";
        rename($_FILES['monfichier']['tmp_name'],$_FILES['monfichier']['name']);
        move_uploaded_file($_FILES['monfichier']['name'],$repertoireDestination);
        echo "<br/>".$_FILES['monfichier']['name'];
    }
}
?>
J'ai pu uploadé un .avi de 175mo et un .mp4 de 60mo.
Toutefois firefox a planté pas mal de fois, que ce soit en upload réussi ou non. J'aimerais savoir si ça vient du code.

Mes param:
post_max_size = 200M
upload_max_filesize = 200M
memory_limit = 1280M (là je me demande si c'est réaliste sur 1 mutu)
max_execution_time = 600 (pareil)
max_input_time = 600 (pareil)

J'aimerais bien un coup de main pour qu'on améliore un peu le script et qu'on trouve les bonnes valeurs pour le php.ini. Et qu'on voit pour les erreurs (du script et du navigateur qui plante).
Pour la progressbar, j'ai entendu dire qu'avec ajax, on pouvait récupérer la taille de la partie du fichier déjà uploadée. Avec cette valeur on pourrait faire 1 calcul pour savoir si ca fait 10% du fichier et à chaque 10% on affiche 1 image qui représentera 10% du fichier, 20, 30 etc...
Qu'en penses-tu? Est-ce possible?

Merci pour ton aide ;)

Re: Problème avec un script d'upload de fichiers

par sam12 » 17 juil. 2011, 19:51

J'étais parti sur la partie télécharger mais j'ai pris le .exe :roll: n'importe quoi

Je viens d'essayer le script, tout à l'air de bien marcher.
J'ai quelques doutes, lorsqu'on se connecte, le pass apparait avec des ****, n'y a t-il aucun risque qu'on puisse le déchiffrer?
Ce que j'ai peur en laissant uploader n'importe quoi à mes membres sur un même compte ftp, déjà il y a le danger qu'ils uploadent vraiment n'importe quoi mais aussi qu'ils récupèrent les vidéos des autres membres et/ou les supprimer tout aussi facilement.
Ils peuvent aussi se servir du serveur pour uploader n'importe quoi et partager le lien sans que je puisse contrôler avant.
Par le cpanel, pourrais-je bloquer la suppression et le download de fichiers des autres membres (si on garde l'hypothèse d'un compte ftp partagé entre tous)?
Pourrais-je bloquer les dossiers pouvant être lus/téléchargés par mes membres? Il est hors de question qu'ils puissent télécharger le script du site.

Une fois uploadés, les fichiers sont dans le dossier choisi par mes membres mais puis-je le protéger directement par un htaccess ou tout autre moyen.
A la base avec mon script, je voulais qu'ils puissent uploader leur fichier dans un dossier tenu secret (donc aucun moyen pour eux de savoir où était le fichier) et après validation, je copiais le fichier dans 1 autre dossier protégé par htaccess qui à la demande d'un membre, pouvait télécharger le fichier avec un lien symbolique. A condition qu'il puisse, avec des verifs php de rigueur.

Merci pour ton aide ;)

PS: J'ai un message signalant que le script n'est là que pour évaluation donc pourrais-je l'utiliser pour mon site?

Re: Problème avec un script d'upload de fichiers

par Skw33d » 17 juil. 2011, 19:04

Le .exe ? Euh, c'est un dossier contenant des fichiers HTML et un ficher .jar.
Je te refile le lien : http://www.jscape.com/downloads/secure-ftp-applet
Et c'est une version d’évaluation mais fonctionnel à 100%. Après en cherchant un peu je suis sur que tu peux trouver quelque chose libre et sécurisé.

Pour l'applet actuel :
Tu copies le répertoire dans le répertoire de ton site web et tu te rends à l'adresse de ce répertoire.
Mais au préalable pense à modifier le fichier params.txt et à remplacer par tes valeurs à toi :
# set FTP hostname
hostname = adresse du serveur ftp
# set FTP username
username = nom d'utilisateur
# set FTP password
password = mot de passe
Si je donne un même log ftp pour tous mes membres, ils ne risquent pas de supprimer les fichiers des autres? Puis-je creer un compte FTP pour chacun de mes membres plutôt?
Comment récupérais-je les fichiers par la suite?
Pour ce qui est utilisateurs, je trouve qu'il serait un peu inutile de créer plusieurs utilisateurs. Le passage par FTP te sert uniquement à uploadé des fichiers.
Une gestion de FTP ne se fait pas via des droits d'utilisateurs mais via des droits sur les fichiers. T
Par contre tu peux restreindre un utilisateur à un certains dossier : en serveur mutualisé c'est par ton cPanel que tu devras passé.

Pour gérer les droits des fichiers via PHP : http://php.net/manual/fr/function.chmod.php
Dans ton cas, un chmod sur le dossier où seront uploadés tes fichiers en écriture uniquement.

Tu peux, par exemple lancé cette commande dès qu'un fichier a été uploadé, à toi de jouer avec l'applet Java et PHP pour ça.
De la documentation sur les droits : http://www.siteduzero.com/tutoriel-3-96 ... #ss_part_2

Voilà, bonne chance ;)