Uploader un fichier sans formulaire !

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 422 fois - Téléchargée 44 fois

Contenu du snippet

Ce code vous permet d'uploader un fichier sans formulaire, pour cela il faut installer MSXML 4.0

Source / Exemple :


'Page coté Client
<HTML>
	<HEAD>
		<TITLE>File Send</TITLE></HEAD>
	<BODY>
		<DIV id="div_message">Ready</DIV>
	</BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript">
btn_sende()
// files upload function
function btn_sende()
{
   // Creation de l'objet ADO-stream
   var ado_stream = new ActiveXObject("ADODB.Stream");

   // Creation du Document XML document
   var xml_dom = new ActiveXObject("MSXML2.DOMDocument");
   xml_dom.loadXML('<?xml version="1.0" ?> <root/>');

   xml_dom.documentElement.setAttribute("xmlns:dt", "urn:schemas-microsoft-com:datatypes");

   // creation d'un nouveau noeud et définit le contenu en binaire
   var l_node1 = xml_dom.createElement("file1");
   l_node1.dataType = "bin.base64";

   ado_stream.Type = 1;  // 1=adTypeBinary 
        
   ado_stream.Open(); 
   
   'Spéficier le chemin du fichier à uploader
   ado_stream.LoadFromFile("D:\\test.txt");
   
   

   l_node1.nodeTypedValue = ado_stream.Read(-1); // -1=adReadAll
   ado_stream.Close();
   xml_dom.documentElement.appendChild(l_node1);
   

   // Envoie le document XMl sur un serveur web
   var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   xmlhttp.open("POST","Serveur + Pserv.asp",false);
   xmlhttp.send(xml_dom);
   // show server message in message-area
   div_message.innerHTML = xmlhttp.ResponseText;
}
</SCRIPT>

'Page coté Serveur
<%@ LANGUAGE=VBScript%>
<% Option Explicit
   Response.Expires = 0 
   

   dim ado_stream
   dim xml_dom
   dim xml_file1

   set ado_stream = Server.CreateObject("ADODB.Stream")
   ' Creation de l'objet XMLDOM et charge la demande de l'objet ASP
   set xml_dom = Server.CreateObject("MSXML2.DOMDocument")
   xml_dom.load(request)

   set xml_file1 = xml_dom.selectSingleNode("root/file1")

   ado_stream.Type = 1  ' 1=adTypeBinary 
   ado_stream.open 
   ado_stream.Write xml_file1.nodeTypedValue
   ' Sauve le fichier uploadé
   ado_stream.SaveToFile "/test.txt",2  ' 2=adSaveCreateOverWrite 
   ado_stream.close

   set ado_stream = Nothing 
   set xml_dom = Nothing
   ' Ecris le message dans le browser
   Response.Write "Upload successful!"
%>

A voir également

Ajouter un commentaire

Commentaires

Focalizer
Messages postés
76
Date d'inscription
dimanche 19 mai 2002
Statut
Membre
Dernière intervention
8 mai 2006
-
OK merci .. :)
cs_Stephman
Messages postés
39
Date d'inscription
samedi 22 juin 2002
Statut
Membre
Dernière intervention
8 juin 2003
-
Focalizer: faudrai que le script coté client inclue le nom du fichier dans le XML, et que le script coté serveur puisse l'extraire.
Focalizer
Messages postés
76
Date d'inscription
dimanche 19 mai 2002
Statut
Membre
Dernière intervention
8 mai 2006
-
Je pense que si l'on part dans des domaine similaire, on pourais carément la mettre sur aspfr ... le code vbscript étant exécuté coté serveur, ce serais donc sur aspfr ou dans la catégorie de ce même site que cette sources aurait trouvé sa place.
De plus que l'on n'est pas ici pour juger la position d'une source, mais pour commenter la source elle même ou encore encourager le créateur.

Cependant cette sources est vraiment aps, elle change des différente manière d'upload connue. Il me reste quand même une question, y a t il moyen de reprendre le nom du fichier, pour ainsi l'engeristrer sous ce même non ? si oui comment ?!?

Merci d'avance, Focalizer
cs_Stephman
Messages postés
39
Date d'inscription
samedi 22 juin 2002
Statut
Membre
Dernière intervention
8 juin 2003
-
JavaScriptFR.Com aurrait été plus aproprié, ce qu'il y a dedans c'est du JavaScript et non du VBScript.
Mais sinon c'est pas mal(y suffisait de la faire en VBScript et elle avait sa place ici :))
Bon je sais je suis un peu en retard(a voir la date) :), mais je l'avais po vue
cs_Pof
Messages postés
78
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
7 février 2006
-
ben ya du vbscript dedans... sinon je vois pas...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.