upload activex Scripting.FileSystemObject
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:
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:
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:
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:
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
Si l'utilisateur donne son accord bien sur
Le but n'�tant pas de fouiller l'ordi de l'utilisateur...
Si une solution demande simplement � l'utilisateur de valider l'upload c'est ok.
Le but �tant ici de faciliter la vie de l'utiliseur:
Quand on fait un copier coller de Word vers des �diteurs html wysiwyg, les images restent sur l'ordi local. Pour l'utilisateur c'est tr�s contraignant de transf�rer ces images. Il faut uploader les images une � une, puis recr�er chacun des liens vers les images upload�es.
Dans ce que j'ai, il manque juste � permettre l'upload:
- le remplacement des liens vers les images locales vers les images serveurs est fait
- l'upload 'conna�t' le fichier � uploader, sa destination, son nouveau nom (si n�cessaire).