00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#include <libcgi++.h>
00026
#include "Mime.h"
00027
00028
00029
00030
00031 Mime::Mime(
const std::string& filename)
00032 {
00033 FILE *fil;
00034
if ((fil = fopen(filename.c_str(),
"rt")) != NULL)
00035 {
00036
char slask[1000];
00037 fgets(slask,1000,fil);
00038
while (!feof(fil))
00039 {
00040
while (strlen(slask) && (slask[strlen(slask) - 1] == 13 || slask[strlen(slask) - 1] == 10))
00041 {
00042 slask[strlen(slask) - 1] = 0;
00043 }
00044 cgi::Parse pa(slask);
00045 pa.getword(slask);
00046 std::string mime_type = slask;
00047 pa.getword(slask);
00048 std::string ext = slask;
00049
while (ext.size())
00050 {
00051
m_mime[ext] = mime_type;
00052 pa.getword(slask);
00053 ext = slask;
00054 }
00055
00056 fgets(slask,1000,fil);
00057 }
00058 fclose(fil);
00059 }
00060
else
00061 {
00062 fprintf(stderr,
"Couldn't open file '%s'...\n",filename.c_str());
00063 }
00064 }
00065
00066
00067 Mime::~Mime()
00068 {
00069 }
00070
00071
00072 std::string
Mime::GetMimeFromExtension(
const std::string& ext)
00073 {
00074 std::string mime =
m_mime[ext];
00075
return mime;
00076 }
00077
00078