Question

NOTE : just to be clear , i know how to do the if statements. I need a way of getting the actual content type and storing that in a variable as a string.

I have written a simple java server . I haven't figured out how to return the content type of the file the server loads.

I know it there would be an if statement that would set a string variable to for example text/html based on what another variable e.g contetType is. So , for example :

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

This is a section from the server (the code for an okay 200 response) :

         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 );

So I need to find the content type and store it in a variable . From that I can use that information to set the content type when the response message is displayed.

EDIT , It just returns blank for the content type:

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";
    }
}

Also :

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 );
Was it helpful?

Solution

You can try to determine the content type of a file based on the file extension

Please note that the logic does try to guess the content type based on the filename. If the filename is wrong (no extension / wrong extension) the content-type header will most probably be wrong.

Assuming you have a file name somewhere:

    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
        }
    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top