Aller au contenu

[ASP] - Upload d'un fichier sur un serveur


ggbce

Messages recommandés

Bonjour,

Je fais quelques petits sites web pour le travail, et je fais pratiquement le tout en PHP... mais là je dois le faire en ASP (Windows Server 2003 avec IIS, ASP et VBScript). Je fais beaucoup de VBScript également pour la gestion de réseau et c'est un langage que je connais bien, mais là où je bloque c'est comment récupérer les variables d'environnement du HTML avec le code ASP pour cherger un fichier sur un serveur.

Voici un exemple simple qui fonctionne très bien en PHP:

Le formulaire HTML:

<html><body><form action="upload.php" method="post" enctype="multipart/form-data"><input type="text" name="description" /><input type="file" name="userfile" /><input type="submit" value="Envoyer" /></form></body></html>

Le fichier PHP qui traite le formulaire:

<html><body><?php// Texte (description)$description = $_POST['description'];// Nom du fichier d'origine sur le PC client$lien = $_FILES['userfile']['name'];// Nom temporaire que Apache utilise dans le upload$userfile = $_FILES['userfile']['tmp_name'];// Copie du fichier temporaire vers la destination (dossier spécifique sur mon serveur)copy ($userfile, "/serveur/data/$lien")?></body></html> 

La seule chose que je retrouve pas comme information c'est où IIS va porter temporairement le fichier durant le upload. Quelles sont les variables d'environnements pour un fichier.

Je peux récupérer facilement mon formulaire (portion texte), mais pour le fichier je ne trouve rien sur Internet qui soit simple et clair:

Équivalent ASP pour récupérer (incomplet)

<html><body><%Set fso = Server.CreateObject("Scripting.FileSystemObject")' Texte (Description)description = Request.Form("description")' Nom du fichier d'origine sur le PC client ' ???? -> lien = ???' Nom temporaire que IIS utilise dans le upload' ???? -> userfile = ???' Copie du fichier temporaire vers la destination (dossier spécifique sur mon serveur)' ??? -> objFSO.CopyFile "fichier temporaire ???", "C:\Serveur\Data\" & lien, false%> </body></html>

Il se peut que je fasse fausse route sur la méthode de copie, que le tout soit complètement différent avec IIS (pas de tampon durant la copie)... mais comme je disais je n'ai rien trouvé sur Internet qui semble fonctionner (autre que des exemples avec des fichiers ASP préfabriqués qui possèdent 10000 lignes de codes pour faire presque tout sauf copier le fichier !).

Merci de votre aide !

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Merci pour les liens, mais comme tu peux le voir dans l'exemple de Microsoft, il faut carrément utiliser Microsoft Visual Basic 6 pour créer et compiler une DLL. C'est plutôt lourd comme solution... et il n'est pas évident de mettre la main sur cette suite obsolète

Pour l'autre exemple, j'avais également trouvé ce lien... encore là je trouvais très lourd tout ce code pour simplement copier un fichier. Je peux vois que la personne a créé du code qui permet de filtrer les fichiers, pousser le résultat dans une base de données MS-Access, etc. Son code source contient 5 fichiers distincts, inlucant un stylesheet (.CSS)... rien qui ressemble à un exemple de copie de fichier pur et simple, mais une solution toute faite dans un résultat personnalisé comme le créateur du code l'a désiré. 17,2 Ko de lignes de code à déterrer pour seulement conserver ce qui sert réellement à copier un fichier.

Je vois qu'en finale, il ne semble pas exister de solution simple, ni même beaucoup de personne qui a tenté de faire du chargement de fichier en tapant son propre code, mais en utilisant des bribes déjà compilées par d'autres gens.

Si tout de même quelqu'un connait la réponse, j'aimerais bien la savoir. Merci

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...