... je pensais dans le sens ajouter des fonctions soi-même et ne pas passer par une solution toute faite, par exemple limiter soi-même la taille, les formats (dans mon cas il me faut du SVG) etc. etc. etc. et surtout bien comprendre le code que j'utilise. En général avec les solutions toutes faites on ose pas trop toucher au code (moi en tout cas je n'ose pas).
Il faut bien distinguer deux choses, le code côté javascript et le code côté serveur (dans notre cas php).
C'est côté serveur que tout se décide et que tu dois faire les contrôles, traitements spécifiques etc. Pour reprendre l'exemple de mon script (je peux en parler plus facilement), une classe php est également fournie pour aider les débutants et avoir une solution fonctionnelle dès le départ mais tu pourrais la modifier ou faire ton propre code. Au passage, les exemples d'utilisation de la classe php donnent des exemples pour les contrôles élémentaires que tu as cités (taille, extension) mais aussi pour des redimensionnements d'images, renommage des fichiers en cas de doublons sur le serveur (mode incrémentiel ou suffixe unique), etc. Mais pour parler du principe, une variable javascript est envoyée à php dès que le fichier est entièrement téléchargé, à partir de là tu peux bien faire le code et les contrôles php que tu veux derrière.
Je comprend que tu sois réticent à utiliser quelque chose que tu ne maîtrise pas, mais tu apprendras vite à distinguer les choses importantes qu'on doit absolument maîtriser, de celles que l'on peut déléguer. Et en gros on peut déléguer le code javascript, d'ailleurs c'est bien ce que tu as fait en incluant la librairie jquery sans chercher à comprendre ce qu'elle contient
Ensuite si on te demande par exemple un slide-show, ou d'autres fonctionnalités javascript un peu sophistiquées et que tu veux tout programmer toi-même cela va te prendre un temps infini. Le client va te demander des explications sur tes délais et le prix facturé comparé à d'autres qui auront tout fini en une journée avec beaucoup plus de fonctionnalités disponibles. La plupart du temps on ne fait donc que le strict nécessaire en javascript tant qu'on peut trouver des solutions toutes prêtes. Ce qu'on demande à un code javascript est qu'il soit fonctionnel et suffisamment modulable pour qu'on puisse l'adapter à ses besoins. Si je te demandais des explications sur le code jquey que tu utilises tu me répondrais "je m'en tape mais ça marche et avec ça je peux simplifier des fonctionnalités qui auraient nécessité beaucoup plus de lignes et de temps avec du javascript vanilla". Pour des solutions d'upload toutes prêtes comme celle que je propose ou celles que t'a proposé
@rthur, c'est le même principe. Sauf qu'à la place d'être une couche qui permet d'écrire plus facilement du javascript c'est une couche plus spécifique qui permet d'écrire plus facilement un upload de fichiers. A terme le boulot d'un développeur est donc de pouvoir se servir de ce type de solutions, de même que les API que fournissent certains sites pour exploiter leurs fonctionnalités (et dans ce dernier cas on ne peut pas faire autrement que s'adapter à ce qui est proposé).
D'un autre côté, il est tout à ton honneur de vouloir apprendre... Ce que je disais simplement plus haut c'est que l'upload de fichiers est très spécifique et qu'il serait très casse gueule de vouloir s'initier à jquery ou à javascript avec cet exercice surtout si tu veux avoir des fonctionnalités un peu évoluées et un code qui tient la route (sans besoin de tout changer si tu veux permettre l'upload multiple par exemple).
Par contre concernant ton code, ce que tu pourrais faire et qui est à la portée d'un débutant, est d'avoir au moins un retour d'information pour dire que le fichier est bien téléchargé. C'est le béaba d'ajax de pouvoir fournir un retour d'information sinon ça perd pratiquement tout son intérêt. Mets-toi à la place de l'utilisateur, il envoie un fichier et puis... rien, toujours rien, jamais rien ne se passe. Peut-il ou non quitter la page ? Il ne le saura jamais. Ne me dis pas que cela correspond à tes besoins, personne ne pourra te croire
Enfin bon c'est pas la mer à boire, une dizaine de lignes tout au plus en comptant le php, le javascript et une zone d'insertion html. En plus cela fait partie de l'apprentissage normal d'un débutant, cela te servira tous les jours, et à la fin tu pourras dire que tu as une solution minimaliste et fonctionnelle pour télécharger un petit fichier. Pour l'upload multiple ou les gros fichiers et des fonctionnalités plus évoluées les prérequis sont au delà du niveau débutant, c'est pour cela que je te disais d'attendre d'être plus expérimenté ou sinon d'utiliser un code tout fait. Mais le retour ajax, c'est indispensable dès le départ, c'est la base. Allez au boulot
