Hallo zusammen,
momentan habe ich eine Upload Möglichkeit in einem Formular. Der User klickt auf "durchsuchen", wählt die Datei aus und klickt dann auf einen "Upload" submit button. Soweit so gut.
Ich überlege nun, ob man dies vereinfachen kann. Also ohne zusätzlichen Submit Klick. Die Datei soll gleich nach der Auswahl aus dem Dateisystem hochgeladen werden.
Folgendes habe ich bis jetzt hinbekommen:
Das Input Type= file
------------------------------------------
<input type="file" name="upload_file" id="upload_file" onchange="makeAutoUpload(this.value,<?php echo $UserID; ?>);" />
Die Funktion "makeAutoUpload:
function makeAutoUpload(UploadFile,UserID){
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="../include/autoupload.php";
url=url+"&UserID="+UserID;
url=url+"&UploadFile="+UploadFile;
//xmlhttp.onreadystatechange=UploadStateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
Die PHP Seite autoupload.php für den eigentlichen Upload
$UserID = $_GET['UserID'];
$UploadFile = $_GET['UploadFile'];
....
//echo "die UserID ist $UserID <br>";
echo "das upload file ist $UploadFile <br>";
$file_name = $_FILES['print_file']['name'];
$file_size = $_FILES['print_file']['size'];
$file = $_FILES['print_file']['tmp_name'];
...
if(copy($file, "$userupload/$file_name")){
}
Mein Problem ist momentan das ich nicht wie früher (mit dem Submit Button) auf $_FILES[ zugreifen kann, weil ja das Absenden via Post fehlt.
Daher hatte ich versucht mit "this.value" bzw. der Übergabe mit $_GET['UploadFile'] die Datei mitzugeben. Das klappt soweit für den Dateinamen. Der ganze Pfad wird aber nicht übertragen, obwohl es eigentlich im Input Type=File so angezeigt wird.
Kann mir jemand weiterhelfen? Ist sowas überhaupt möglich?
vielen Dank und viele Grüße
hawk