C++ 獲取URL圖片、html檔案,CInternetSession
獲取網路圖片
CString URL="http://192.168.0.23:8080/3DView/CR201505060107001.jpg"
CInternetSession session;
CHttpFile *httpFile = (CHttpFile *)session.OpenURL(URL);
CStdioFile imgFile;
char buff[1024]; // 快取
imgFile.Open("圖片名字.png", CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);
DWORD dwStatusCode;
httpFile->QueryInfoStatusCode(dwStatusCode);
if(dwStatusCode == HTTP_STATUS_OK) {
int size=0;
do {
size = httpFile->Read(buff,1024); // 讀取圖片
imgFile.Write(buff,size);
}while(size > 0);
}
httpFile->Close();
session.Close();
獲取URL的html
CInternetSession session;
CHttpFile *httpFile = (CHttpFile *)session.OpenURL(m_URL);
DWORD dwStatusCode;
httpFile->QueryInfoStatusCode(dwStatusCode);
CString getdata=_T("");
if(dwStatusCode == HTTP_STATUS_OK) {
CString line_data=_T("");
while(httpFile->ReadString(line_data)) {
getdata += line_data; // 讀取html
}
getdata.TrimRight();
}
httpFile->Close(); // html資料已經放在getdata中
session.Close();
// 如果 getdata 中儲存的是UTF_8網頁(可以看html的meta欄位)
strCoding cfm; // 編碼轉換類,詳情請看下方連線
string temp = (LPCSTR)getdata.GetBuffer(); // 網頁資料,轉換成string型
string output;
// UTF_8轉GB2312,讓MFC控制元件能顯示
cfm.UTF_8ToGB2312(output,(char *)temp.data(),strlen(temp.data()));
// 若MFC字符集為Unicode的話,還需要將多位元組轉為寬位元組
temp = output;
DWORD dwNum = MultiByteToWideChar (CP_ACP, 0, temp.c_str(), -1, NULL, 0);
wchar_t *pwText;
pwText = new wchar_t[dwNum];
MultiByteToWideChar (CP_ACP, 0, temp.c_str(), -1, pwText, dwNum);
// 取得轉換後結果 m_data 用於顯示
m_data = pwText;
delete []pwText;
DEMO:
BOOL IHttpFileDownLoad::EnHttpImageDownLoad(CString strHttpUrl, CString strDownPath, CString &strDestFilePath)
{
BOOL bFlag = FALSE;
strHttpUrl.TrimLeft();
strHttpUrl.TrimRight();
if(strHttpUrl.IsEmpty() || strDownPath.IsEmpty()) return bFlag;
if(!::PathFileExists(strDownPath)) return bFlag;
CString URL = strHttpUrl;
CInternetSession session;
CHttpFile *httpFile = NULL;
try
{
httpFile = (CHttpFile *)session.OpenURL(URL);
}
catch (CInternetException* e)
{
e->Delete();
return bFlag;
}
if(httpFile==NULL){
session.Close();
return bFlag;
}
CString httpFileName = httpFile->GetFileName();
CString strFilePath = strDownPath;
if(strFilePath.Right(1)!="\\") strFilePath+="\\";
strFilePath += httpFileName;
CFileFind find;
BOOL bFind = find.FindFile(strFilePath);
if(bFind) CFile::Remove(strFilePath);
CStdioFile imgFile;
if (imgFile.Open(strFilePath, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary))
{
DWORD dwStatusCode;
httpFile->QueryInfoStatusCode(dwStatusCode);
if(dwStatusCode == HTTP_STATUS_OK) {
bFlag = TRUE;
DWORD fileLength = httpFile->GetLength();
char *buff = new char[fileLength];// 快取
memset(buff, 0, fileLength);
int size=0;
do {
size = httpFile->Read(buff,1024);//讀取圖片
imgFile.Write(buff,size);
}while(size > 0);
if (buff!=NULL)
{
delete [] buff;
buff = NULL;
}
strDestFilePath = strFilePath;
}
}
imgFile.Close();
httpFile->Close();
delete []httpFile;
session.Close();
return bFlag;
}
相關文章
- 通過web url獲取檔案資訊Web
- 怎樣從ipa格式檔案獲取資源圖片
- app直播原始碼,Vue獲取URL圖片的寬高APP原始碼Vue
- 通過url動態獲取圖片大小方法總結
- 直播軟體原始碼,Vue獲取URL圖片的寬高原始碼Vue
- 獲取app 圖片APP
- c# 圖片檔案讀取C#
- 通過url獲取圖片尺寸的幾種方法:JS和phpJSPHP
- 利用html5 file api讀取本地檔案(如圖片、PDF等)HTMLAPI
- 03 #### 讀取靜態檔案-圖片
- Java後臺Html轉圖片和獲取頁面屬性值,及圖片拼接JavaHTML
- HTML5獲取圖片的原始高度簡單介紹HTML
- sql 2k中的圖片儲存和獲取----引申到檔案儲存和獲取 (轉)SQL
- 獲取URL地址
- 獲取本地圖片/視訊地圖
- iOS 獲取視訊圖片iOS
- 【API】隨機獲取圖片API隨機
- JAVA通過URL連結獲取視訊檔案資訊(無需下載檔案)Java
- 從CSV檔案中讀取jpg圖片的URL地址並多執行緒批量下載執行緒
- Python 獲取圖片檔案大小並轉換為base64編碼Python
- IOS遍歷網頁獲取網頁中<img>標籤中的圖片urliOS網頁
- 獲取網路圖片的大小
- JavaScript獲取背景圖片定位值JavaScript
- javascript如何獲取圖片的高度JavaScript
- Java——獲取圖片尺寸和大小Java
- 獲取SDWebImage下載的圖片Web
- 用JavaScript獲取原始圖片尺寸JavaScript
- django2 獲取專案中所有urlDjango
- 檔案(圖片)上傳調研: HTML 5 vs. FlashHTML
- phpSpreadsheet 讀取圖片並另存為檔案PHP
- FileReader()讀取檔案、圖片上傳預覽
- C++ 獲取PE檔案自校驗值的程式碼C++
- 獲取檔案列表 .net
- jquery獲取圖片的真實大小jQuery
- JavaScript獲取圖片的真實大小JavaScript
- 使用ColorfulImg獲取圖片主題色!
- javascript如何獲取img圖片的尺寸JavaScript
- 獲取SD卡上所有的圖片SD卡