1

curl を使用してインターネットから字幕をダウンロードするプログラムを作成しました。ダウンロードし
たファイルの拡張子 (.zip または .rar) を知るにはどうすればよいですか?

これが私のコードです(関数の一部です)

FILE* download=fopen("download.zip","wb");//i assume it's a zip
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_POST,1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS,post_data.c_str());
curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_easy_setopt(curl, CURLOPT_URL,url.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write2file);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, download);
res = curl_easy_perform(curl);
if(res != CURLE_OK)
    std::cout<<"Download Failed "<<std::endl;
curl_easy_cleanup(curl);
fclose(download);
4

1 に答える 1

2

関数を使用できますcurl_easy_getinfo()。コンテンツタイプ情報があります。

CURLINFO_CONTENT_TYPE

ポインタを char ポインタに渡して、ダウンロードされたオブジェクトの content-type を受け取ります。これは、Content-Type: フィールドから読み取られた値です。NULL を取得した場合は、サーバーが有効な Content-Type ヘッダーを送信しなかったか、使用されているプロトコルがこれをサポートしていないことを意味します。

この情報を使用して、ディスク上の名前を変更することにより、ダウンロードしたファイルに適切な拡張子を付けることができます。

于 2012-08-12T13:26:19.333 に答える