Ich versuche, eine Datei in einen Ordner in meinem Server mit XMLHttpRequest() und PHP hochladen. Hier ist die HTML-Datei fu2.html
:
<form action="fu2.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file" id="file"><br><br>
<input type="button" value="Upload" onclick="loadFile()">
</form>
<script>
function loadFile() {
var myFileList = document.getElementById("file").files;
var fileToUpload = myFileList[0];
alert(fileToUpload.name+","+fileToUpload.tmp_name);
var xhr = new XMLHttpRequest();
xhr.open("POST", 'http://10.192.44.143/pgadmsn/fu2.php',false);
xhr.send(fileToUpload);
alert(xhr.responseText);
}
</script>
Die PHP-Datei fu2.php
ist:
<?php
if(isset($_FILES["fileToUpload"])){
$name = $_FILES["fileToUpload"]["name"];
$tmp_name = $_FILES['fileToUpload']['tmp_name'];
if (isset ($name)) {
if (!empty($name)) {
$location = 'uploads/';
if (move_uploaded_file($tmp_name, $location.$name)){
echo 'Uploaded';
}
} else {
echo 'please choose a file';
}
}
else{
echo "name not set";
}
}
else echo "FILES not set!";
?>
Es gibt zwei Probleme, die ich bin vor:
In
alert(fileToUpload.name+","+fileToUpload.tmp_name);
, fileToUpload.tmp_name wird unbestimmt.Das Hauptproblem besteht darin, dass in fu2.php Datei, in
isset($_FILES["fileToUpload"])
-false
auswertet, weil ichFILES not set!
alsxhr.responseText
bin immer.
Was mache ich hier falsch?
form_data.append ('Datei', file_data); – Doug
Deuten u Formdata-Objekt zu verwenden? –