Y a-t-il un moyen simple d'uploader un fichier activex? (plus simple que celui-ci: http://www.codeproject.com/KB/aspnet/AJAXUpload.aspx )

J'obtiens le fichier de cette façon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var fileobject = new window.ActiveXObject("Scripting.FileSystemObject");
myfile = fileobject.GetFile(filepath);
Cette façon ne semble pas fonctionner. On ne peut spécifier le fichier automatiquement pour l'élément 'input type=file'.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function uploadtopineditform (myyfile, uploadurl)
{// Ouvrir la page d'upload dans un iframe invisible
 var tempiframe=document.createElement('iframe');
 	tempiframe.setAttribute('id','RSiframe');
	tempiframe.style.border='0px';
	tempiframe.style.width='0px';
	tempiframe.style.height='0px';
	iframeObj = document.body.appendChild(tempiframe); 
 // Créer un formulaire d'upload dans cet iframe
 var frmUpload = document.createElement('form');
        tempiframe.appendChild(frmUpload);
 // Créer l'input file
 var inputfile=document.createElement('input');
 	inputfile.setAttribute("type", "file");
 	inputfile.setAttribute("name", "file");
 	inputfile.setAttribute("defaultvalue", myfile); // Ne fonctionne pas (ni value). Pas moyen de spécifier le fichier?
 	frmUpload.appendChild(inputfile);
 frmUpload.action = uploadurl ; //+ "&insert=" + insert;
 frmUpload.submit();	
};

J'ai une erreur avec ceci mais je ne sais pas pourquoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
function uploadtopineditajax (myfile, uploadurl)
{  var request = createRequest();
    if (request) {
        request.open('POST', uploadurl, false);
        request.send(myfile); // L'erreur est ici. Faut-il convertir l'object file activex?
        if (request.readyState == 4) {
            if (request.status == 200) {}
            else { if (request.status == 401) {
                    alert ("Error 401");} 
                    else 
                    alert("Error");
                    }}
                else 
                alert('AJAX request failed.');
            } 
            else 
        alert('Unable to create AJAX request.');
};
function createRequest() {
    var request;
    try {
        request = new XMLHttpRequest();
    } catch (trymicrosoft) {
        try {
            request = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (tryothermicrosoft) {
            try {
                request = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (failed) {
                request = false;
            }}}
    return request;
};

Pour l'upload en php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
$uploaddir = 'c:/';
$uploadfile = $uploaddir . basename($_FILES['file']['name']);
 
echo "<p>";
 
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.\n";
} else {
   echo "Upload failed";
}
 
echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
 
?>
Merci