2014-03-02 2 views
0

참고 : 분명히하기 위해 if 문을 수행하는 방법을 알고 있습니다. 실제 콘텐츠 형식을 가져 와서 문자열에 변수에 저장하는 방법이 필요합니다.자바 서버에서 콘텐츠 유형을 반환하십시오.

나는 간단한 자바 서버를 작성했다. 서버가로드하는 파일의 내용 유형을 반환하는 방법을 알지 못했습니다.

contetType과 같은 다른 변수를 기반으로 문자열 변수를 text/html로 설정하는 if 문이 있다는 것을 알고 있습니다. 그래서, 예를 들어 :

  String okayreply="HTTP/1.0 200 OK \r\n" + 
       "Connection: close\r\n" + 
       "Content-Lenght : "+ file1.length() + 
       "Content-Type:" + 
       "\r\n" + 
       "\r\n" + 
       "<h2>File Found</h2>\r\n"; 

    System.out.println(okayreply); 

그래서 나는 콘텐츠 유형을 찾아서에 저장해야합니다

if (contentType == ".html") 
    { 
     String s = "text/html"; 
    } 
    else if ...... 

이 서버에서 섹션 (괜찮은 200 응답 코드)입니다 변수. 응답 메시지가 표시 될 때 그 정보를 사용하여 컨텐트 유형을 설정할 수 있습니다.

편집은, 그냥 콘텐츠 유형에 대한 빈 반환 : 또한

File file1 = new File (filename); 
String s = ""; 

    int indexOfFinalDot = filename.lastIndexOf("."); 
if (indexOfFinalDot > 0) { 
    String fileExtentsion = filename.substring(indexOfFinalDot).toLowerCase(); 
    if ("html".equals(fileExtentsion)) { 
     s = "text/html"; 
    } 
} 

:

String okayreply="HTTP/1.0 200 OK \r\n" + 
       "Connection: close\r\n" + 
       "Content-Lenght : "+ file1.length() + "\r\n" + 
       "Content-Type: " + s + 
       "\r\n" + 
       "\r\n" + 
       "<h2>File Found</h2>\r\n"; 

    System.out.println(okayreply); 
+0

난 당신이 여기에 바퀴를 개혁하고 감지 :

당신이 어딘가에 파일 이름이 가정. ServletRequest 클래스 [이미 getContentType 메소드 있음] (http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getContentType()). – gerrytan

답변

1

당신은 파일 확장자

을 기반으로 파일의 내용 유형을 결정하기 위해 시도 할 수 있습니다

로직은 파일 이름을 기반으로 콘텐츠 유형을 추측하려고 시도합니다. 파일 이름이 잘못되면 (확장자/확장자가 잘못됨) 내용 유형 헤더가 잘못되었을 가능성이 큽니다.

String filename = "index.html"; 

    int indexOfFinalDot = filename.lastIndexOf("."); 
    if (indexOfFinalDot > 0) { 
     String fileExtentsion = filename.substring(indexOfFinalDot + 1).toLowerCase(); 
     if ("html".equals(fileExtentsion)) { 
      //your logic here 
     } 
    } 
+0

이 파일 개체가 적합합니까 : File file1 = new File (filename); – Lazis002

+0

이 답변을 업데이트했습니다. File 객체 자체는 필요하지 않습니다. 파일 이름 문자열 = index.html이 왜 파일 이름 – WeMakeSoftware

+0

만 필요합니다. 파일이 텍스트 파일이거나 jpg이거나 인덱스 – Lazis002

관련 문제