Hi,
I'm using FileUpload to process a file uploaded from Internet Explorer
via Jscript, there's no direct form submit but I use the XMLHTTP object
since I want control over the result. This is my client code

function go() {
    // I skip some details
    var fileName = ...;
    var url = ... + "&fileName=" + fileName;

    var adoStream = new ActiveXObject("ADODB.Stream");
    adoStream.Mode = 3;
    adoStream.Type = 1;
    adoStream.Open();
    adoStream.LoadFromFile(fileName);
    var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
    xmlhttp.open("POST", url, false);
    
    var boundary = "----------This_Is_The_Boundary_\r\n";
    xmlhttp.setRequestHeader("Content-Type","multipart/form-data;
boundary=" + boundary);
    xmlhttp.setRequestHeader("Content-Length", adoStream.Size);
    xmlhttp.send(adoStream.Read(adoStream.Size));
}

Then I want to save the file on the server. In my servlet I have this
code:

String path = ...
DiskFileUpload upload = new DiskFileUpload();
upload.setRepositoryPath(path);

try {
        List items = upload.parseRequest(request);
        Iterator iter = items.iterator();
        while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                if (!item.isFormField()) {
                        fileName = item.getName();
                        File uploadedFile = new File(fileName);
                        item.write(uploadedFile);
                }
        }
} catch(Exception e) {
        ...
}

But the parseRequest() returns an empty list. I've debugged the
FileUpload code and the problem is that in the discardBodyData() of the
class MultipartStream a MalformedStreamException("Stream ended
unexpectedly") is thrown and parseRequest() returns an empty collection.
So I wonder what's wrong with my uploading... Any idea?

Thanks in advance,
Andrea

----------------------------------
Andrea Giovannini
Java Software Architect

Gruppo Formula S.p.A.
----------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to