void http_exec(FILE *fw, char *path) { char cmd[256] = "file --mime-type "; strcat(cmd, path); FILE *fp = popen(cmd, "r"); char type[64]; fgets(type, sizeof(type), fp); char *begin = strstr(type, " "); begin++;puts(begin); if (strcmp(begin, "text/html") == 0) { http_send_headers(fw, "text/html"); http_show(fw, path); } else { http_send_headers(fw, "text/plain"); http_show(fw, path); } }(为什么在与"text/html"比较时总是失败)
时间: 2024-01-14 09:04:05 浏览: 29
在比较字符串时,可能会存在空格或其他不可见字符的问题,导致比较结果不符合预期。可以尝试使用字符串处理函数去除不可见字符,例如使用strtok()函数将type字符串按空格分割,然后比较分割后的字符串。
具体地,可以使用如下代码:
```c
char *token = strtok(type, " ");
while (token != NULL) {
if (strcmp(token, "text/html") == 0) {
http_send_headers(fw, "text/html");
http_show(fw, path);
break;
}
token = strtok(NULL, " ");
}
if (token == NULL) {
http_send_headers(fw, "text/plain");
http_show(fw, path);
}
```
此外,也可以尝试使用更加严格的比较函数,例如strncmp()函数,限制比较的字符数,避免比较结果受到不可见字符的影响。
相关问题
http-equiv="Content-Type"
`http-equiv="Content-Type"` 是一种 HTML 标记,用于指定当前文档的字符编码和 MIME 类型。通过设置 `http-equiv="Content-Type"`,可以告诉浏览器当前文档使用的是哪种字符集和 MIME 类型,以便浏览器正确地解析文档。例如,下面的标记指定当前文档为 UTF-8 编码,并使用 HTML 格式:
```html
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
```
前端处理Content type 'multipart/form-data;boundary=----WebKitFormBoundaryAZuAHk0Nj60kgmAg;charset=UTF-8' not supported
根据提供的引用内容,我无法直接回答你的问题。引用提到了关于Python处理multipart/form-data请求的方法,而引用则提到了RFC 1522中关于MIME的内容。然而,这些引用并没有提供关于前端处理Content type 'multipart/form-data;boundary=----WebKitFormBoundaryAZuAHk0Nj60kgmAg;charset=UTF-8' not supported的具体信息。
要回答你的问题,我需要更多的上下文和详细信息。请提供更多关于你遇到的问题的背景和具体情况,以便我能够给出更准确的答案。