Salut a tous,
J ai le code suivant qui a partir de un nom de ficher (avec extension) me renvoir
un content-type.
Le probleme est que lorsque j extrais l extension, j ai en retour une string et switch accepte seulement un integer.
J ai essaye de jouer avec un enum mais son succes.
Est ce que quelqu un a une idee de comment resoudre mon probleme?
Mon environment est Linux (si ca peut etre utile)
D autre solutions sont aussi la bienvenue
Merci
Cyril
----------------------
#include <stdio.h>
#include <string.h>
enum file_type {
txt = 0,c = 0, pl = 0, cc = 0, h = 0,
gif = 1,
png = 2,
jpg = 3,jpeg = 3, jpe = 3
};
char *get_content_type(char *file) {
int i;
int size = strlen(file);
char *type;
for (i=size;i!=0;i--) {
if (file[i] == '.' ) break;
}
char *ext = &file[i+1];
switch(ext) {
case 0:
type = "text/plain";
break;
case 1:
type = "image/gif";
break;
case 2:
type = "image/x-png";
break;
case 3:
type = "image/jpeg";
break;
default:
type = "text/html";
break;
}
return type;
}
int main() {
char *str = "hello.html";
char *type = get_content_type(str);
printf("%s\n",type);
return 0;
}