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....

InformationsquelleAutor Scicare | 2011-04-18

Schreibe einen Kommentar