Hallo,
ich kann den Webserver starten, aber wenn ich auf upload klicke, passiert nichts.
ich kann den Webserver starten, aber wenn ich auf upload klicke, passiert nichts.
Java:
package nanohttp;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
public class StartServer extends NanoHTTPD {
public StartServer() throws IOException {
super(8080);
}
@Override
public Response serve(String uri, Method method, Map<String, String> headers, Map<String, String> parms, Map<String, String> files) {
uri = "";
try {
FileReader html = new FileReader(getClass().getResource("/webpage/index.html").getPath());
BufferedReader reader = new BufferedReader(html);
String line;
while ((line = reader.readLine()) != null) {
uri += line;
}
} catch (IOException ioe) {
}
return new Response(uri);
}
public static void main(String[] args) {
StartServer server = null;
try {
server = new StartServer();
server.start();
} catch (IOException ioe) {
System.err.println("Server konnte nicht gestartet werden:\n" + ioe);
System.exit(-1);
}
System.out.println("Server läuft auf port 8080. Zum Beenden Enter drücken.\n");
try {
System.in.read();
} catch (Throwable t) {
server.stop();
};
}
}
Java:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>File-Upload mit Fortschrittanzeige</title>
</head>
<body>
<script type="text/javascript">
function fileChange()
{
//FileList Objekt aus dem Input Element mit der ID "fileA"
var fileList = document.getElementById("fileA").files;
//File Objekt (erstes Element der FileList)
var file = fileList[0];
//File Objekt nicht vorhanden = keine Datei ausgewählt oder vom Browser nicht unterstützt
if(!file)
return;
document.getElementById("fileName").innerHTML = 'Dateiname: ' + file.name;
document.getElementById("fileSize").innerHTML = 'Dateigröße: ' + file.size + ' B';
document.getElementById("fileType").innerHTML = 'Dateitype: ' + file.type;
document.getElementById("progress").value = 0;
document.getElementById("prozent").innerHTML = "0%";
}
var client = null;
function uploadFile()
{
//Wieder unser File Objekt
var file = document.getElementById("fileA").files[0];
//FormData Objekt erzeugen
var formData = new FormData();
//XMLHttpRequest Objekt erzeugen
client = new XMLHttpRequest();
var prog = document.getElementById("progress");
if(!file)
return;
prog.value = 0;
prog.max = 100;
//Fügt dem formData Objekt unser File Objekt hinzu
formData.append("datei", file);
client.onerror = function(e) {
alert("onError");
};
client.onload = function(e) {
document.getElementById("prozent").innerHTML = "100%";
prog.value = prog.max;
};
client.upload.onprogress = function(e) {
var p = Math.round(100 / e.total * e.loaded);
document.getElementById("progress").value = p;
document.getElementById("prozent").innerHTML = p + "%";
};
client.onabort = function(e) {
alert("Upload abgebrochen");
};
client.open("POST", "upload.php");
client.send(formData);
}
function uploadAbort() {
if(client instanceof XMLHttpRequest)
//Briecht die aktuelle Übertragung ab
client.abort();
}
</script>
<form action="" method="post" enctype="multipart/form-data">
<input name="file" type="file" id="fileA" onchange="fileChange();"/>
<input name="upload" value="Upload" type="button" onclick="uploadFile();" />
<input name="abort" value="Abbrechen" type="button" onclick="uploadAbort();" />
</form>
<div>
<div id="fileName"></div>
<div id="fileSize"></div>
<div id="fileType"></div>
<progress id="progress" style="margin-top:10px"></progress> <span id="prozent"></span>
</div>
</body>
</html>