서버에 1kb의 단일 텍스트 파일을 업로드하려고합니다. 어떤 이유로 든 수신 한 데이터에는 파일 정보가 포함되어 있지 않습니다. 따라서 FileItem.Write (file)가 작동하지 않습니다. FileItem 이후 크기가 0이라고합니다.플렉스에 업로드 된 파일이 없습니다.
URLVariables를 관리했기 때문에 이것이 연결 문제라고 생각하지 않습니다. 실제로 나오지 않는 유일한 것은 실제 파일입니다.
어도비 플렉스 가이드를 따라 갔지만 여전히 작동하지 않습니다. (http://livedocs.adobe.com/flex/3/html/help.html?content=17_Networking_and_communications_7.html)
오류가 발생하지 않으며 이벤트 완료가 트리거됩니다.
제안 사항?
플렉스 3.2 SDK JBoss 서버 자바의 doPost
편집 : 추가 된 소스 코드
CertificateUploadServlet.java
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.ListIterator;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class CertificateUploadServlet extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
{
File disk = null;
FileItem item = null;
DiskFileItemFactory factory = new DiskFileItemFactory();
ListIterator iterator = null;
List items = null;
Servlet FileUpload upload = new ServletFileUpload(factory);
try
{
items = upload.parseRequest(request);
}catch (FileUploadException e1)
{
// Oh Noes!
}
iterator = items.listIterator();
while(iterator.hasNext())
{
item = (FileItem) iterator.next();
if(item.isFormField())
{
}else
{
try
{
PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("C:/Test/processUploadedFile2.txt",true)));
out1.println("item.getContentType():\t\t "+item.getContentType());
out1.println("item.getName:\t\t "+ item.getName());
out1.println("item.getSize:\t\t" + item.getSize());
out1.println("item.getString:\t\t" + item.getString());
out1.println("item.getFieldName:\t\t"+item.getFieldName());
out1.println("item.isInMemory:\t\t" + item.isInMemory());
out1.println("item.toString():\t\t" + item.toString());
out1.close();
}
catch(IOException e)
{
// oh Noes~
}
}
}
}
}
dataTest.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="horizontal"
creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.netFileReference;
import mx.controls.Alert;
private var fileRef:FileReference = new FileReference();
private function init():void
{
fileRef.addEventListener(Event.SELECT, selectHandler);
fileRef.addEventListener(Event.COMPLETE, completeHandler);
}
private function selectHandler(event:Event):void
{
Alert.show("Selected...");
var request:URLRequest= new URLRequest("https://localhost/scm/uploadServlet");
fileRef.upload(request);
}
private function completeHandler(event:Event):void
{
Alert.show("File got uploaded");
}
]]>
</mx:Script>
<mx:Button id="mBrowseButton" label="browse..." click="fileRef.browse()" />
</mx:Application>
item.getName : 나는이
을 업로드 할 올바른 파일 이름을 반환하지만 item.getSize는 항상 0을 반환하고 내가 서버에 파일을 작성하려고 할 때, 따라서 항상 비어 있습니다.
상세 정보 : 나는이 URLVariables 클래스에 변수를 추가하고 자바 클래스를 검색 할 수 있어요
. 유일한 문제는 파일이 전송되지 않는다는 것입니다.
출력 :
Single file upload test
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\work\jboss.web\localhost\scm\upload_76556a96_14064a51ded__7ffa_00000000.tmp, size=10bytes, isFormField=true, FieldName=Filename
item name: Filename value: Cookie.txt
item.toString(): name=Cookie.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\work\jboss.web\localhost\scm\upload_76556a96_14064a51ded__7ffa_00000001.tmp, size=0bytes, isFormField=false, FieldName=Filedata
item.getName() : Cookie.txt
item.getContentType(): application/octet-stream
item.getSize: 0
item.getString:
item.getFieldName: Filedata
item.isInMemory: true
item.toString(): name=Cookie.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\work\jboss.web\localhost\scm\upload_76556a96_14064a51ded__7ffa_00000001.tmp, size=0bytes, isFormField=false, FieldName=Filedata
item name: Upload value: Submit Query
Multifile upload test
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\work\jboss.web\localhost\scm\upload_76556a96_14064a51ded__7ffa_00000003.tmp, size=10bytes, isFormField=true, FieldName=Filename
item name: Filename value: Cookie.txt
item.toString(): name=Cookie.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\work\jboss.web\localhost\scm\upload_76556a96_14064a51ded__7ffa_00000004.tmp, size=0bytes, isFormField=false, FieldName=Filedata
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\work\jboss.web\localhost\scm\upload_76556a96_14064a51ded__7ffa_00000006.tmp, size=10bytes, isFormField=true, FieldName=Filename
item name: Filename value: doPost.txt
item.toString(): name=doPost.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\work\jboss.web\localhost\scm\upload_76556a96_14064a51ded__7ffa_00000007.tmp, size=0bytes, isFormField=false, FieldName=Filedata
Single file upload test
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.toString(): name=Cookie.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\work\jboss.web\localhost\scm\upload_76556a96_14064a51ded__7ffa_00000010.tmp, size=0bytes, isFormField=false, FieldName=Filedata
item name: Filename value: Cookie.txt
item.getName() : Cookie.txt
item.getContentType(): application/octet-stream
item.getSize: 0
item.getString:
item.getFieldName: Filedata
item.isInMemory: true
item.toString(): name=Cookie.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\work\jboss.web\localhost\scm\upload_76556a96_14064a51ded__7ffa_00000010.tmp, size=0bytes, isFormField=false, FieldName=Filedata
item name: Upload value: Submit Query
편집 : 더 많은 정보를 원하시면. 다음 출력은 사용자 c.s 코드에서 가져온 것입니다. 나는 문서화 된 방식대로 정보를 보여주지 못하는 이유를 알 수 없습니다.
accept:text/*
content-type:multipart/form-data; boundary=----------ae0ae0ae0GI3ae0GI3ae0Ij5gL6cH2
user-agent:Shockwave Flash
host:localhost
content-length:1019
connection:Keep-Alive
cache-control:no-cache
cookie:JSESSIONID=BE2BF803041A7324CAF21445F6F3389C
------------ae0ae0ae0GI3ae0GI3ae0Ij5gL6cH2
Content-Disposition: form-data; name="Filename"
Cookie.txt
------------ae0ae0ae0GI3ae0GI3ae0Ij5gL6cH2
Content-Disposition: form-data; name="Filedata"; filename="Cookie.txt"
Content-Type: application/octet-stream
en.wikipedia.org FALSE / FALSE 0 BCSI-CS-1b3dbb382aea0366 2
en.wikipedia.org FALSE / FALSE 1404323604 centralnotice_bannercount_fr12 1
en.wikipedia.org FALSE / FALSE 1374590485 centralnotice_bucket 0-4.2
en.wikipedia.org FALSE / FALSE 1373131359 mediaWiki.user.bucket%3Aext.articleFeedbackv5%4011-tracking 11%3Aignore
en.wikipedia.org FALSE / FALSE 1373131359 mediaWiki.user.bucket%3Aext.articleFeedbackv5%405-links 5%3AX
en.wikipedia.org FALSE / FALSE 1373131359 mediaWiki.user.bucket%3Aext.articleFeedbackv5%406-form 6%3A6
en.wikipedia.org FALSE / FALSE 0 uls-previous-languages %5B%22en%22%5D
------------ae0ae0ae0GI3ae0GI3ae0Ij5gL6cH2
Content-Disposition: form-data; name="Upload"
Submit Query
------------ae0ae0ae0GI3ae0GI3ae0Ij5gL6cH2--
// dumpRequest = false output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 10
item.getString: Cookie.txt
item.getFieldName: Filename
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload__272408b1_140738428eb__7ffa_00000006.tmp, size=10bytes, isFormField=true, FieldName=Filename
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): application/octet-stream
item.getName: Cookie.txt
item.getSize: 0
item.getString:
item.getFieldName: Filedata
item.isFormField: false
item.isInMemory: true
item.toString(): name=Cookie.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload__272408b1_140738428eb__7ffa_00000007.tmp, size=0bytes, isFormField=false, FieldName=Filedata
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 12
item.getString: Submit Query
item.getFieldName: Upload
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload__272408b1_140738428eb__7ffa_00000008.tmp, size=12bytes, isFormField=true, FieldName=Upload
더 많은 정보 :
버전 정보
Apache Maven: 2.2.1
Java version: 1.6.0_39
fileupload: 1.2
Commons-IO: 1.4
Internet Explorer: 8.0.7601.17514
Flash Player: 11.8.800.94
더 많은 정보를 출력. 두 번째는 TEST.TXT
#########################True/True
------------GI3gL6Ef1GI3cH2KM7ei4cH2gL6ei4
Content-Disposition: form-data; name="Filename"
Cookie.txt
------------GI3gL6Ef1GI3cH2KM7ei4cH2gL6ei4
Content-Disposition: form-data; name="Filedata"; filename="Cookie.txt"
Content-Type: application/octet-stream
en.wikipedia.org FALSE / FALSE 0 BCSI-CS-1b3dbb382aea0366 2
en.wikipedia.org FALSE / FALSE 1404323604 centralnotice_bannercount_fr12 1
en.wikipedia.org FALSE / FALSE 1374590485 centralnotice_bucket 0-4.2
en.wikipedia.org FALSE / FALSE 1373131359 mediaWiki.user.bucket%3Aext.articleFeedbackv5%4011-tracking 11%3Aignore
en.wikipedia.org FALSE / FALSE 1373131359 mediaWiki.user.bucket%3Aext.articleFeedbackv5%405-links 5%3AX
en.wikipedia.org FALSE / FALSE 1373131359 mediaWiki.user.bucket%3Aext.articleFeedbackv5%406-form 6%3A6
en.wikipedia.org FALSE / FALSE 0 uls-previous-languages %5B%22en%22%5D
------------GI3gL6Ef1GI3cH2KM7ei4cH2gL6ei4
Content-Disposition: form-data; name="Upload"
Submit Query
------------GI3gL6Ef1GI3cH2KM7ei4cH2gL6ei4--
#########################True/True
------------gL6GI3Ij5Ef1ei4Ef1ae0ei4Ef1gL6
Content-Disposition: form-data; name="Filename"
Test.txt
------------gL6GI3Ij5Ef1ei4Ef1ae0ei4Ef1gL6
Content-Disposition: form-data; name="Filedata"; filename="Test.txt"
Content-Type: application/octet-stream
This is text found instead Test.txt
------------gL6GI3Ij5Ef1ei4Ef1ae0ei4Ef1gL6
Content-Disposition: form-data; name="Upload"
Submit Query
------------gL6GI3Ij5Ef1ei4Ef1ae0ei4Ef1gL6--
#########################False/True
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 10
item.getString: Cookie.txt
item.getFieldName: Filename
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload__32478800_14078614409__7ffa_00000000.tmp, size=10bytes, isFormField=true, FieldName=Filename
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): application/octet-stream
item.getName: Cookie.txt
item.getSize: 0
item.getString:
item.getFieldName: Filedata
item.isFormField: false
item.isInMemory: true
item.toString(): name=Cookie.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload__32478800_14078614409__7ffa_00000001.tmp, size=0bytes, isFormField=false, FieldName=Filedata
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 12
item.getString: Submit Query
item.getFieldName: Upload
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload__32478800_14078614409__7ffa_00000002.tmp, size=12bytes, isFormField=true, FieldName=Upload
#########################False/True
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 8
item.getString: Test.txt
item.getFieldName: Filename
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload_6fd3dea8_140789cbb78__7ffa_00000003.tmp, size=8bytes, isFormField=true, FieldName=Filename
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): application/octet-stream
item.getName: Test.txt
item.getSize: 0
item.getString:
item.getFieldName: Filedata
item.isFormField: false
item.isInMemory: true
item.toString(): name=Test.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload_6fd3dea8_140789cbb78__7ffa_00000004.tmp, size=0bytes, isFormField=false, FieldName=Filedata
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 12
item.getString: Submit Query
item.getFieldName: Upload
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload_6fd3dea8_140789cbb78__7ffa_00000005.tmp, size=12bytes, isFormField=true, FieldName=Upload
#########################True/False
[accept:text/*
content-type:multipart/form-data; boundary=----------Ij5KM7ae0Ef1GI3ei4ei4gL6GI3ei4
user-agent:Shockwave Flash
host:localhost
content-length:1019
connection:Keep-Alive
cache-control:no-cache
cookie:JSESSIONID=C8FF29BF4253B2E9B9EEF3360F83EB74
]
#########################True/False
[accept:text/*
content-type:multipart/form-data; boundary=----------GI3cH2ei4KM7ei4GI3GI3KM7gL6ae0
user-agent:Shockwave Flash
host:localhost
content-length:449
connection:Keep-Alive
cache-control:no-cache
cookie:JSESSIONID=B4D506EF25DA8FD0D5B11DBA98B2B21D
]
#########################False/False
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 10
item.getString: Cookie.txt
item.getFieldName: Filename
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload_50024124_140787caa99__7ffa_00000000.tmp, size=10bytes, isFormField=true, FieldName=Filename
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): application/octet-stream
item.getName: Cookie.txt
item.getSize: 0
item.getString:
item.getFieldName: Filedata
item.isFormField: false
item.isInMemory: true
item.toString(): name=Cookie.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload_50024124_140787caa99__7ffa_00000001.tmp, size=0bytes, isFormField=false, FieldName=Filedata
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 12
item.getString: Submit Query
item.getFieldName: Upload
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload_50024124_140787caa99__7ffa_00000002.tmp, size=12bytes, isFormField=true, FieldName=Upload
#########################False/False
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 8
item.getString: Test.txt
item.getFieldName: Filename
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload_c1b3312_14078bd7c03__7ffa_00000000.tmp, size=8bytes, isFormField=true, FieldName=Filename
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): application/octet-stream
item.getName: Test.txt
item.getSize: 0
item.getString:
item.getFieldName: Filedata
item.isFormField: false
item.isInMemory: true
item.toString(): name=Test.txt, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload_c1b3312_14078bd7c03__7ffa_00000001.tmp, size=0bytes, isFormField=false, FieldName=Filedata
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
item.getContentType(): null
item.getName: null
item.getSize: 12
item.getString: Submit Query
item.getFieldName: Upload
item.isFormField: true
item.isInMemory: true
item.toString(): name=null, StoreLocation=C:\test\jboss-eap-5.1\jboss-as\server\test\tmp\upload_c1b3312_14078bd7c03__7ffa_00000002.tmp, size=12bytes, isFormField=true, FieldName=Upload
FileItem이란 무엇입니까? 서버 또는 클라이언트의 무언가입니까? "URLVariables"는 무엇과 관련이 있습니까? 세트는 어디에 있으며 어떻게 액세스하고 있습니까? 클라이언트에서 에스더로 파일을 어떻게 업로드하려고합니까?어디서 오류를 찾으십니까? 코드를 공유 할 수 있습니까? – JeffryHouser
코드가 없으므로 TV가 없어서 Homer가 미치지 않습니다. b/c 그는 자신의 질문에 답할 수 없으며 자신이하는 일을 보여줄 수 있습니다. –
더 명확하게하기위한 코드가 추가되었습니다. – user1301708