Java - 파일 전송 클라이언트 - 서버

[Java] 파일 전송 클라이언트 - 서버

발행물

Java의 웹 응용 프로그램의 일부로 사용자는 양식을 통해 사용자가 파일 (모든 유형 : Excel 통합 문서, 이미지 ...)을 서버에 보낼 수 있어야하고 후자는 응용 프로그램 디렉토리에 기록되어야합니다.

내 문제는 지금 파일이 완전히 복원되지 않았다는 것입니다. 글쎄, 글쓰기에 문제가 있습니다. "Blabla.txt"파일을 업로드 할 때 "Hello, we are 목요일"입니다., 2009 년 7 월 16 일 및 하늘 햇살입니다. "다음, 서버에 저장된 파일은 다음과 같습니다. 내용이"Blabla.txt ":"oju, naked omsl ed tl 6Jilt20 ileteslil. "이 넌센스에 집중하여 관찰 할 수 있습니다. 편지는 2 장 밖에 쓰이지 않았다. 이미지의 경우, 이 경로를 택한 후에는 볼 수 없으므로 테스트를 수행 할 수 없습니다.

이 발견은 이것이 인코딩 문제라고 생각하게 만듭니다. 그러나 나는 아무것도 모르기 때문에 확신 할 수 없습니다.

즉, 여기 내 코드가 있습니다 :

 부울 isMultipart FileUpload.isMultipartContent = (요청); DiskFileUpload DiskFileUpload 업로드 = 새 (); 목록 항목 = null; {upload.parseRequest items = (request); 시도해보십시오. } catch (FileUploadException e) {} String fileName = ((FileItem) items.get (0)). GetName (); fileName = nomFichier.substring (nomFichier.lastIndexOf ( "\ \") +1); 제작 된 InputStream = null; 않았다 = (InputStream) ((FileItem) items.get (0)). getInputStream (); FileOutputStream fos = 새 FileOutputStream (새 파일 ( "MyFolder /"+ fileName)); while (fis.read ()! = -1) {fos.write (fis.read ()); } fos.close (); fis.close (); JSP에서 폼은 멀티 파트를 인코딩합니다. 

그래서 여기에, 지금까지 많은 연구 끝에이 시점에서 저는 죽었고 제 연구는 제가 풀지 않습니다.

이것이 당신에게 영감을 불어 넣는다면, 조언을 해주세요. 제가 방법에 대해 틀렸고 훨씬 쉬워지면, 망설이지 마십시오! 읽고 좋은 하루 보내 주셔서 감사합니다.

해결책

좋아, 나는이 메시지를 게시 한 직후에 깨달았다.

나는 이중 fis.read ()를 수행하므로 보통 문자를 건너 뛰었습니다 ...

너무 부끄러워하지만 도움이 될 수 있다면이 메시지를 남겨주세요. :)

그 노래를 수정 (그냥 조건부 루프) :

 int fisread fis.read = (); while (fisread! = -1) {fos.write (fisread); fisread fis.read = (); } 

노트

아 세후 투에 의해 해결

이전 기사 다음 기사

톱 팁