0
j2me를 처음 사용하면서 j2me.It에서 모바일 이미지를 업로드하려고하는데 서버 쪽에서 예외가 표시됩니다.multipart/form-data로 j2me의 서버에 이미지를 업로드하는 방법은 무엇입니까?
org.apache.commons.fileupload.FileUploadException: Processing of ``multipart/form-
data request failed. Stream ended unexpectedly
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadB
ase.java:384)
at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(
ServletFileUpload.java:116)
at org.apache.jsp.photo_jsp._jspService(photo_jsp.java:119)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:384)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
20)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run
(JIoEndpoint.java:445)
at java.lang.Thread.run(Unknown Source)
제발 해결 방법을 제안하십시오.
From J2me 코드를 사용하여 서버에 이미지를 업로드하고 있습니다.
HttpConnection conn = null;
OutputStream os = null;
// InputStream is = null;
try
{
System.out.println("url:" + serverurl);
conn = (HttpConnection)Connector.open(serverurl);
conn.setRequestMethod(HttpConnection.POST);
// String postData = "";
InputStream imgIs = getClass().getResourceAsStream(FILE);
byte []imgData = new byte[imgIs.available()];
imgIs.read(imgData);
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=---------------------------4664151417711");
os = conn.openOutputStream();
// os.write(message1.getBytes());
// For First Image uploading
String message1 = "";
message1 += "-----------------------------4664151417711" + CrLf;
message1 += "Content-Disposition: form-data; name=\"photo\";
filename=\"" + FILE + "\"" + 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)>imgData.length){
size = imgData.length - index;
}
os.write(imgData, index, size);
index+=size;
progress(imgData.length, index); // update the progress bar.
}while(index<imgData.length);
System.out.println("DONE");
}
catch(Exception e)
{
e.printStackTrace();
}finally
{
System.out.println("Close connection");
try
{
//os.close();
}
catch(Exception e){}
try
{
// is.close();
}
catch(Exception e){}
try
{
// conn.close();
}
catch(Exception e){}
}
on serside we use the code:
System.out.println(".............Images..122223...Images...");
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
System.out.println(".............Images...11111..test..."+upload);
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
System.out.println(".............Images...11111..test..."+isMultipart);
if(isMultipart)
{
System.out.println(".............Images...11111..Images..Images....");
List items = upload.parseRequest(request);
System.out.println(".............Images.33333....Images..Images....");
Iterator iterator = items.iterator();
while(iterator.hasNext())
{
String fieldName = "";
String fieldValue="";
String fileName = "";
FileItem fileItem=(FileItem)iterator.next();
System.out.println(fileItem.isFormField());
if (fileItem.isFormField())
{
fieldName = fileItem.getFieldName();
fieldValue = fileItem.getString("UTF-8").trim();
if(fieldName.equals("photo"))
{
if(fieldValue!=null && fieldValue!="")
{
photo = fieldValue;
System.out.println(photo);
}
}
}
else
try
{
if(fileItem != null)
{
fileName = applicationNumber+"_"+fileItem.getName();
fieldName = fileItem.getFieldName();
System.out.println("applicationNumber="+fileName);
}
if(fieldName.equals("photo"))
{
String x=fileName;
if(x.indexOf("/")!=-1)
{
uploadStr = x.substring(0,x.lastIndexOf("/"));
UploadFile = x.substring(x.lastIndexOf("/")+1,x.length());
}
long sizeInBytes = fileItem.getSize();
String applicationURL = "C:/Program Files/
Apache Software Foundation/Tomcat 6.0/webapps/apply_smart/applications";
StringTokenizer stringTokenizer = new StringTokenizer(UploadFile,"\\");
int count=stringTokenizer.countTokens();
for(int i=1;i<=count;i++)
{
String token=stringTokenizer.nextToken();
if(i==count)
{
audioFileName=token;
}
}
applicationURL = applicationURL;
System.out.println("Path="+applicationURL);
String[] filePath = fileName.split("/");
uploadedFile = new File(applicationURL+"/"+filePath[filePath.length - 1]);
long size=uploadedFile.length();
if(size>=11264)
{
}
try
{
fileItem.write(uploadedFile);
path = applicationURL.replaceAll
("C:/ProgramFiles/ApacheSoftwareFoundation /Tomcat 6.0/ webapps/apply_smart/", "");
path= path + "/"+ filePath[filePath.length - 1];
System.out.println("path::::::"+path);
}
catch (java.lang.Exception e)
{
out.println(e);
}
}
}//else
}
catch(Exception exe)
{
out.println(exe);
break;
}
}
예외를 해결하고 이미지를 서버에 보내는 방법을 제안 해주세요.
미리 감사드립니다. .
안녕 peter_budo을 사용했다. 서버에 이미지를 업로드 할 때 업로드하지 않습니다. Jason Woods 코드가 내 측면에서 작동하지 않으므로 작동합니까? – Teja
작동하지 않는 것은 매우 광범위합니다. 더 구체적이지 않은 것은 작동하지 않을 수 있습니까? –
여러 부분 양식 데이터를 사용하여 서버에 이미지를 업로드하는 데 동일한 코드를 사용했습니다. 서버 측에서 이미지를 업로드하기 위해 OutputStream을 사용하여 목록 항목 근처에 빈 항목을 표시합니다. = upload.parseRequest (request); – Teja