Ignore:
Timestamp:
Oct 30, 2013, 1:24:11 PM (10 years ago)
Author:
djay
Message:

Detect mimetype of downloaded content.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/zoo-project/zoo-kernel/service_internal.c

    r442 r446  
    25162516 * Cache a file for a given request
    25172517 */
    2518 void addToCache(maps* conf,char* request,char* content,int length){
     2518void addToCache(maps* conf,char* request,char* content,char* mimeType,int length){
    25192519  map* tmp=getMapFromMaps(conf,"main","cacheDir");
    25202520  if(tmp!=NULL){
     
    25292529    fwrite(content,sizeof(char),length,fo);
    25302530    fclose(fo);
     2531
     2532    sprintf(fname,"%s/%s.zcm",tmp->value,md5str);
     2533    fo=fopen(fname,"w+");
     2534#ifdef DEBUG
     2535    fprintf(stderr,"MIMETYPE: %s\n",mimeType);
     2536#endif
     2537    fwrite(mimeType,sizeof(char),strlen(mimeType),fo);
     2538    fclose(fo);
     2539
    25312540    free(md5str);
    25322541    free(fname);
     
    25632572  char* fcontent;
    25642573  char* cached=isInCache(m,url);
     2574  char *mimeType=NULL;
    25652575  int fsize;
    25662576  int hasF=-1;
     
    25742584      fsize=f_status.st_size;
    25752585      fcontent[fsize]=0;
     2586      fclose(f);
     2587    }
     2588    cached[strlen(cached)-1]='m';
     2589    s=stat(cached, &f_status);
     2590    if(s==0){
     2591      mimeType=(char*)malloc(sizeof(char)*(f_status.st_size+1));
     2592      FILE* f=fopen(cached,"rb");
     2593      int len=fread(mimeType,f_status.st_size,1,f);
     2594      mimeType[f_status.st_size]=0;
     2595      fclose(f);
    25762596    }
    25772597  }else{
     
    25852605    fcontent[res.nDataLen]=0;
    25862606    fsize=res.nDataLen;
     2607    mimeType=res.mimeType;
    25872608  }
    25882609  if(fsize==0){
    25892610    return errorException(m, _("Unable to download the file."), "InternalError");
     2611  }
     2612
     2613  if(mimeType!=NULL){
     2614    addToMap(content,"fmimeType",mimeType);
    25902615  }
    25912616
     
    26032628  addToMap(content,"size",ltmp1);
    26042629  if(cached==NULL)
    2605     addToCache(m,url,fcontent,fsize);
     2630    addToCache(m,url,fcontent,mimeType,fsize);
    26062631  else{
     2632    free(fcontent);
     2633    free(mimeType);
    26072634    free(cached);
    26082635  }
Note: See TracChangeset for help on using the changeset viewer.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png