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!"
%>