JSP AJAX-Datei hochladen
Ich versuchte zum hochladen einer Datei und zeigen den Inhalt der Datei zurück an den browser mit ajax und jsp. Jedoch, es scheint nicht zu funktionieren sehr gut für mich.
Offenbar, in der JSP-Seite Hochladen.jsp, wenn ich versuche, getContentType() auf Anfrage request.getcontentType() == null
.
Hat jemand Erfahrung mit diesem? Ich danke Ihnen sehr.
Form
<form id="uploadform" name="uploadform" enctype="multipart/form-data" action="Upload.jsp" method="post">
<input type="file" name="file" id="listfile" onChange="upload(this.value)"/>
</form>
Dies ist die Javascript-Funktion hochladen(ifile)
function upload(ifile){
if (window.XMLHttpRequest){
//IE7 + and other browsers
xmlhttp = new XMLHttpRequest();
}else{
//IE 6, 5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if(xmlhttp == null){
alert("File Uploading is not available because your browser does not support AJAX");
return;
}
//Function to process response form upload.jsp
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
var response = xmlhttp.responseText;
alert(response);
}
}
xmlhttp.open("POST", "Upload.jsp?file="+ifile, true);
xmlhttp.send(null);
}
- Und dies ist die JSP-Seite Hochladen.jsp
<%@page import="java.util.StringTokenizer"%>
<%@page import="java.io.*" %>
<%
response.setContentType("text/html");
response.setHeader("Cache-control", "no-cache");
String contentType = request.getContentType();
if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) {
DataInputStream in = new DataInputStream(request.getInputStream());
//get length of Content type data
int formDataLength = request.getContentLength();
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
//convert the uploaded file into byte code
while (totalBytesRead < formDataLength) {
byteRead = in.read(dataBytes, totalBytesRead,formDataLength);
totalBytesRead += byteRead;
}
//decode byte array using default charset
String file = new String(dataBytes);
//Using StringTokenizer to extract genes list
StringTokenizer st = new StringTokenizer(file, " ");
int numtoken = st.countTokens();
for(int i = 0; i < numtoken-1; i++){
st.nextToken();
}
String a = st.nextToken();
st = new StringTokenizer(a, " \n");
numtoken = st.countTokens();
String postlink = "";
st.nextToken();
st.nextToken();
for(int i = 1; i < numtoken-3; i++){
String temp = st.nextToken();
char[] c = temp.toCharArray();
temp = new String(c, 0, c.length-1);
if(!" ".equalsIgnoreCase(temp)){
postlink = postlink + temp + ",";
}
}
String temp = st.nextToken();
postlink = postlink + temp;
out.println(postlink);
out.flush();
out.close();
}else if (contentType == null){
out.println("Not a valid file");
out.flush();
}
%>
Sind Sie versuchen, eine Datei hochladen, ohne das aktualisieren des Bildschirms??...ist dies nicht möglich, wie dieser....google und finden die Art der content-Typ unterstützt durch ajax
Hi. Ich sehe, also Datei-Inhalts-Typ wird nicht unterstützt durch Ajax. Wie würden Sie vorschlagen, ich dieses problem lösen? Ich tun wollte, war das hochladen einer Datei und drucken Sie es zurück in einen Bereich ohne eine Aktualisierung der browser. Danke
Versuchen Sie die Antwort, die ich unten geschrieben und Fragen Sie mich, wenn Sie irgendwelche Zweifel haben....
Hi. Ich sehe, also Datei-Inhalts-Typ wird nicht unterstützt durch Ajax. Wie würden Sie vorschlagen, ich dieses problem lösen? Ich tun wollte, war das hochladen einer Datei und drucken Sie es zurück in einen Bereich ohne eine Aktualisierung der browser. Danke
Versuchen Sie die Antwort, die ich unten geschrieben und Fragen Sie mich, wenn Sie irgendwelche Zweifel haben....
InformationsquelleAutor Scicare | 2011-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie den folgenden code...
HTML:
Javascript:
Den oben
Javascript
code leitet die Unterwerfen sich der iframe(Versteckt) anstatt auf die Haupt-Seite selbstJSP:
Hoffe, das hilft...
InformationsquelleAutor Sangeet Menon