コード例 #1
0
        bool serveFile(const string& URI, string& contentType, string& content) const {
            if (URI.length() == 0) return false;
            
            string filename = BASE_DIR + URI;
            if (URI[URI.length() - 1] == '/') filename += DEFAULT_FILE;

            LogDebug("read file: %s", filename.c_str());

            auto deleter = [](FILE *p) {fclose(p); };
            unique_ptr<FILE, decltype(deleter)> pFile(fopen(filename.c_str(), "r"), deleter);
            if (pFile == nullptr) return false;
            
            contentType = getContentType(getFileSuffix(filename));
            
            content.clear();
            char buff[READ_FILE_BUFFER_SIZE];

            fgets(buff, READ_FILE_BUFFER_SIZE - 1, pFile.get());
            while (! feof(pFile.get())) {
                content += buff;
                fgets(buff, READ_FILE_BUFFER_SIZE - 1, pFile.get());
            }

            return true;
        }
コード例 #2
0
ファイル: fileProcess.cpp プロジェクト: Hongweihuo-Lab/Wzip
int filenameMap(char *inName,char *outName,Mode workState){
	char suffix[FILE_NAME_LEN];
	char *ret;
	switch (workState)
	{
	case COMPRESS:
		ret=getFileSuffix(inName,suffix,FILE_NAME_LEN);
		if(ret ==NULL){
			//find no suffix
			strcpy(outName,inName);
			strcat(outName,".wz");
			return 0;
		}
		
		//check suffix
		if(strcmp(suffix,".tar")==0){
			strcpy(outName,inName);
			ret=strrchr(outName,'.');
			*ret='\0';
			strcat(outName,".twz");
			return 0;
		}else{
			strcpy(outName,inName);
			strcat(outName,".wz");
			return 0;
		}
		break;
	case DECPRESS:
		ret=getFileSuffix(inName,suffix,FILE_NAME_LEN);
		if ( ret==NULL)
		{
			printf("Decompress: %s may be error wzip name \n",
					inName);
			return ERR_FILE_NAME;
		}

		//may have suffix
		if(strcmp(suffix,".wz")==0){
			strcpy(outName,inName);
			ret=strrchr(outName,'.');
			*ret=0;
			return 0;
		}else if(strcmp(suffix,".twz")==0){
			strcpy(outName,inName);
			ret=strrchr(outName,'.');
			*ret=0;
			strcat(outName,".tar");
			return 0;
		}else{
			printf("Decompress:%s may be error wzip name \n",
				inName);
			return ERR_FILE_NAME;
		}
		break;
	default:
		printf("unknown workState\n");
		return ERR_PARAMETER;

	}
	
}