Uploader un fichier sans formulaire !

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

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.