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
- app直播原始碼,Vue獲取URL圖片的寬高APP原始碼Vue
- 通過url動態獲取圖片大小方法總結
- 直播軟體原始碼,Vue獲取URL圖片的寬高原始碼Vue
- 利用html5 file api讀取本地檔案(如圖片、PDF等)HTMLAPI
- 03 #### 讀取靜態檔案-圖片
- Java後臺Html轉圖片和獲取頁面屬性值,及圖片拼接JavaHTML
- HTML5獲取圖片的原始高度簡單介紹HTML
- phpSpreadsheet 讀取圖片並另存為檔案PHP
- 獲取URL地址
- 從CSV檔案中讀取jpg圖片的URL地址並多執行緒批量下載執行緒
- iOS 獲取視訊圖片iOS
- 獲取本地圖片/視訊地圖
- 【API】隨機獲取圖片API隨機
- JAVA通過URL連結獲取視訊檔案資訊(無需下載檔案)Java
- FileReader()讀取檔案、圖片上傳預覽
- Data:URL 圖片
- Android獲取本機各種型別檔案列表(音樂、影片、圖片、文件等)Android型別
- django2 獲取專案中所有urlDjango
- 01 讀取模板HTML檔案HTML
- phpSpreadsheet Artisan command 讀取圖片並另存為檔案PHP
- 獲取網路圖片的大小
- JavaScript獲取背景圖片定位值JavaScript
- C++ 獲取PE檔案自校驗值的程式碼C++
- 簡單的C++檔案伺服器--Linux C++客戶端從服務端獲取檔案C++伺服器Linux客戶端服務端
- aspose word指定位置插入圖片,藉助word模板檔案中的書籤來定位 及Java 獲取網路圖片Java
- 使用ColorfulImg獲取圖片主題色!
- jquery獲取圖片的真實大小jQuery
- JavaScript獲取圖片的真實大小JavaScript
- 遞迴獲取檔案列表遞迴
- js獲取url傳遞引數,js獲取url?號後面的引數JS
- Excel 讀取圖片並獲取儲存路徑Excel
- html2canvas擷取圖片並下載HTMLCanvas
- 【HTML】04圖片HTML
- c++ 獲取檔案建立時間、修改時間、訪問時間、檔案內容長度C++
- 圖片寫入pdf檔案
- 為啥從SurfaceView中獲取不到圖片?View
- Chrome 獲取網頁顏色(文字、圖片)Chrome網頁
- URL引數獲取/轉碼