注意:为了清楚起见,我知道如何做if语句。我需要一种获取实际内容类型并将其作为字符串存储在变量中的方法。
我写了一个简单的java服务器。我还没弄明白如何返回服务器加载的文件的内容类型。
我知道会有一个if语句将一个字符串变量设置为例如text / html,基于另一个变量,例如contetType。 所以,例如:
if (contentType == ".html")
{
String s = "text/html";
}
else if ......
这是服务器的一部分(okay 200响应的代码):
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 );
所以我需要找到内容类型并将其存储在变量中。从那里我可以使用该信息在显示响应消息时设置内容类型。
编辑,它只返回内容类型的空白:
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 :(得分: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
}
}