我想从j2me上传多个图像到servlet

时间:2010-07-29 06:46:49

标签: java-me

当我将j2me中的多个图像升级到servlet时,我能够在servlet中获得第一个图像,但是无法获得第二个图像。我的代码有问题吗?你能建议吗

这是我的代码。

// For First Image uploading

String message1 = "";
            message1 += "-----------------------------4664151417711" + CrLf;
            message1 += "Content-Disposition: form-data; name=\"image1\"; filename=\"" + FILE1 + "\"" + CrLf;
            message1 += "Content-Type: image/jpeg" + CrLf;
            message1 += CrLf;

            // the image is sent between the messages ni the multipart message.

            String message2 = "";
            message2 += CrLf + "-----------------------------4664151417711--" + CrLf;               

            conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=---------------------------4664151417711");
            // might not need to specify the content-length when sending chunked data.
            // conn.setRequestProperty("Content-Length", String.valueOf((message1.length() + message2.length() + imgData.length)));

            System.out.println("open os");
            os = conn.openOutputStream();

            System.out.println(message1);
            os.write(message1.getBytes());




            // SEND THE IMAGE
            int index = 0;
            int size = 1024;
            do{
                System.out.println("write:" + index);
                if((index+size)>imgData1.length){
                    size = imgData1.length - index; 
                }
                os.write(imgData1, index, size);
                index+=size;
                progress(imgData1.length, index); // update the progress bar.

            }while(index<imgData1.length);



// For Second Image uploading


message1 = "";
            message1 += "-----------------------------4664151417711" + CrLf;
            message1 += "Content-Disposition: form-data; name=\"image2\"; filename=\"" + FILE2 + "\"" + CrLf;
            message1 += "Content-Type: image/jpeg" + CrLf;
            message1 += CrLf;

            // the image is sent between the messages ni the multipart message.

            message2 = "";
            message2 += CrLf + "-----------------------------4664151417711--" + CrLf;               

            conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=---------------------------4664151417711");
            // might not need to specify the content-length when sending chunked data.
            // conn.setRequestProperty("Content-Length", String.valueOf((message1.length() + message2.length() + imgData.length)));


            System.out.println(message1);
            os.write(message1.getBytes());




            // SEND THE IMAGE
            int index = 0;
            int size = 1024;
            do{
                System.out.println("write:" + index);
                if((index+size)>imgData2.length){
                    size = imgData2.length - index; 
                }
                os.write(imgData2, index, size);
                index+=size;
                progress(imgData2.length, index); // update the progress bar.

            }while(index<imgData2.length);

1 个答案:

答案 0 :(得分:-1)

它工作正常如果我修改代码如下

 conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=---------------------------4664151417711"); 

   os = conn.openOutputStream(); 
   os.write(message1.getBytes()); 

//首次上传图片

String message1 = ""; 
message1 += "-----------------------------4664151417711" + CrLf; message1 += "Content-Disposition: form-data; name=\"image1\"; filename=\"" + FILE1 + "\"" + CrLf; message1 += "Content-Type: image/jpeg" + CrLf; message1 += CrLf;

os.write(message1.getBytes());


    // SEND THE IMAGE 
    int index = 0; 
    int size = 1024; 
    do{ 
        System.out.println("write:" + index); 
        if((index+size)>imgData1.length){ 
            size = imgData1.length - index;  
        } 
        os.write(imgData1, index, size); 
        index+=size; 
        progress(imgData1.length, index); // update the progress bar. 

    }while(index<imgData1.length); 

//第二张图片上传

String message2 = ""; 
message2 += "-----------------------------4664151417711" + CrLf; 
message2 += "Content-Disposition: form-data; name=\"image2\"; filename=\"" +    FILE2 + "\"" + CrLf; 
message2 += "Content-Type: image/jpeg" + CrLf; message1 += CrLf;

     os.write(message2.getBytes());


    // SEND THE IMAGE      
    //int index = 0;      
    int size = 1024;      
    do{      
        System.out.println("write:" + index);      
        if((index+size)>imgData2.length){      
            size = imgData2.length - index;       
        }      
        os.write(imgData2, index, size);      
        index+=size;      
        progress(imgData2.length, index); // update the progress bar.      

    }while(index<imgData2.length);      


  String message3 = "\r\n-----------------------------4664151417711--\r\n";         
    os.write(message3.getBytes());