• Diocp HTTPServer 支持SVG


    Diocp是一个很强大,很稳定的服务端,但是里面的HTTPServer并不支持SVG文件,这里记录一下,以免以后忘记了

    diocp_ex_http_common.pas 单元的GetContentTypeFromFileExt函数,改为以下代码

    function GetContentTypeFromFileExt(const pvFileExt, pvDefault: string): String;
    var
      lvExt: String;
    begin
      lvExt := LowerCase(pvFileExt);
      ///新增对svg的支持
    {$REGION '支持svg文件'}
      if lvExt = '.svg' then
      begin
        Result := 'image/svg+xml';
      end else
    {$ENDREGION}
    
      if lvExt = '.js' then
      begin
        Result := 'application/javascript';
      end
      else if lvExt = '.css' then
      begin
        Result := 'text/css';
      end else if lvExt = '.apk' then
      begin
        Result := 'application/vnd.android.package-archive'
      end
      else if lvExt = '.json' then
      begin
        Result := 'application/json;charset=UTF-8';
      end
      else if (lvExt = '.html') or (lvExt = '.htm') then
      begin
        Result := 'text/html;charset=UTF-8';
      end
      else if (lvExt = '.jpg') or (lvExt = '.jpeg') then
      begin
        Result := 'image/jpeg';
      end
      else if (lvExt = '.gif') then
      begin
        Result := 'image/gif';
      end
      else if (lvExt = '.png') then
      begin
        Result := 'image/png';
      end else if CompareStrIgnoreCase(PChar(lvExt), '.m3u', -1) = 0 then
      begin
        Result := 'audio/mpegurl';
      end else if CompareStrIgnoreCase(PChar(lvExt), '.mp3', -1) = 0 then
      begin
        Result := 'audio/mp3';
      end else if CompareStrIgnoreCase(PChar(lvExt), '.mp4', -1) = 0 then
      begin
        Result := 'audio/mp4';
      end else if CompareStrIgnoreCase(PChar(lvExt), '.wma', -1) = 0 then
      begin
        Result := 'audio/wma';
      end else if CompareStrIgnoreCase(PChar(lvExt), '.wav', -1) = 0 then
      begin
        Result := 'audio/wav';
    
      end
      else
      begin
        Result := pvDefault;
      end;
    end;
    

      

  • 相关阅读:
    如何添加和删除本地存储中的数据?
    本地存储和cookies之间的区别是什么?
    那么如何使用WebSQL?
    WebSQL是HTML 5规范的一部分吗?
    WebSQL是什么?
    什么是本地存储的生命周期?
    本地存储和cookies之间的区别是什么?
    什么是多线程中的上下文切换?
    web workers是什么,为什么我们需要web workers?
    连接点?
  • 原文地址:https://www.cnblogs.com/wuxi15/p/15800268.html
Copyright © 2020-2023  润新知