2014-07-15 2 views
0

사용자가 두 개의 텍스트 필드를 채우거나 두 개의 파일을 업로드하고 제출할 단일 버튼을 클릭하는 HTML 페이지에 양식이 있습니다. 다음 폼의 코드입니다자바 서블릿에서 파일을 문자열로 읽기

<form name="submitButton" action="DAOserv" method="POST" enctype="multipart/form-data"> 
       <div id="SQL_form"> 
        <div > 
         <textarea name="SQL" placeholder="BAU Reason" 
          rows="11"></textarea> 
         <label for="BAUInputFile">BAU File</label> <input type="file" 
          id="BAUInputFile"> 
        </div> 
       </div> 

       <div > 
        <div > 
         <textarea name="BAU" placeholder="SQL Queries" 
          rows="11"></textarea> 
         <label for="SQLInputFile">SQL File</label> <input type="file" 
          id="SQLInputFile"> 
        </div> 
       </div> 
       <button type="submit" >Submit</button> 
      </form> 

명확히하기 위해이 첫 번째 DIV는 쿼리의 집합에 대한 텍스트 상자와 파일 업로드 버튼을 포함, 두 번째는 비즈니스 이유 텍스트 상자와 파일 업로드 버튼을 포함 . 사용자는 파일을 업로드하거나 두 섹션 각각에 글을 써야합니다.

버튼을 클릭하면 양식 필드가 모두 전송되지만 온라인으로 솔루션을 찾을 수 없거나 찾을 수없는 경우 (파일을 서블릿 디렉토리에 업로드하는 방법에 대한 대부분의 게시물은 간단히 파일을 사용자가 두 양식 필드 중 하나 또는 모두에 파일을 업로드 한 경우 입니다.

본질적으로 서블릿은 각 텍스트 필드를 검사하고, null 인 경우 업로드 된 파일이 있는지 확인하고, 그렇다면 해당 파일의 텍스트를 문자열로 구문 분석합니다 .

미리 도움을 청하십시오!

+0

기본적으로 파일을 업로드하고 싶지는 않습니다. 자바 스크립트 파일을 읽고 그 내용을 상자에 넣고 'enctype = "multipart/form-data"가 아닌 일반 양식을 제출하고 싶습니다. – developerwjk

+0

어떻게해야합니까? – jFram

답변

0

당신이

봐이 스레드 How to upload files to server using JSP/Servlet?

에서 Servlet3.0에 있다면 당신은

    문자열

    에 파일 내용을 읽으려면이

    InputStream fileContent = filePart.getInputStream(); 
    

    같은 filepart 컨텐츠 뭔가를 얻을 수 있습니다

  1. through Apache IOUtils

    문자열 텍스트 = IOUtils.toString (inputStream, StandardCharsets.UTF_8.name());

  2. 자바 스트림 읽기

    의 StringBuilder textBuilder = 새의 StringBuilder(); try (리더 판독기 = 새 BufferedReader (새 InputStreamReader (inputStream, Charset.forName (StandardCharsets.UTF_8.name()))) { int c = 0; while ((c = reader.read())! = -1) { textBuilder.append ((char) c);

  3. 이 Java8

    공공 정적 문자열 읽기 (의 InputStream 입력)와 읽기 } 가} IOException가 슬로우 { 시도 (BufferedReader로 버퍼 = 새의 BufferedReader (새로운 InputStreamReader (입력))) { 반환 buffer.lines (). 콜렉터 (Collectors.joining ("\ n")); } }이 도움이

희망!

관련 문제