📄 urlimage.cpp
字号:
#include "StdAfx.h"
#include "urlimage.h"
#include <afxinet.h>
CURLImage::CURLImage()
{
}
CURLImage::~CURLImage()
{
}
void CURLImage::SetWorkingFolder(LPCSTR folder)
{
szFolder=folder;
}
void CURLImage::GetWorkingFolder(LPSTR folder)
{
folder=szFolder.GetBuffer(szFolder.GetLength());;
}
BOOL CURLImage::Download(LPCSTR url)
{
CInternetSession cs;
CHttpFile *chf=NULL;
UINT nLen=1; //文件每次传输大小
//DWORD dwLen=0; //文件总大小
DWORD rcvLen=0; //当前已接受总数据
FILE *fp=NULL;
CString strURL=url;
//分配缓冲区
BYTE* buf=new BYTE[1024*20];
if((fp=fopen(m_szFile.GetBuffer(m_szFile.GetLength()),"wb+"))==NULL)
{
logfile.WriteBlank();
strURL+=" 下载失败!";
logfile.WriteLog(strURL.GetBuffer(strURL.GetLength()));
return TRUE;
}
//open http 文件
chf=(CHttpFile*)cs.OpenURL(url);
if(chf!=NULL)
{
//文件总长
dwSize=chf->GetLength();
//循环读取网络文件内容
while(nLen)
{
nLen=chf->Read(buf,1024*20);
rcvLen+=nLen;
//求已下载内容的百分比
curPercent=rcvLen/dwSize*100;
//写入本地文件
fwrite(buf,nLen,sizeof(BYTE),fp);
}
//关闭http文件
chf->Close();
}
//写入日志
logfile.WriteBlank();
strURL+=" 下载成功";
logfile.WriteLog(strURL.GetBuffer(strURL.GetLength()));
cs.Close();
delete []buf;
fclose(fp);
return TRUE;
}
int CURLImage::GetPercent()
{
return curPercent;
}
BOOL CURLImage::GetPath(LPCSTR url,LPSTR path)
{
return TRUE;
}
void CURLImage::SetLocalFile(CString& localFile)
{
m_szFile=localFile;
}
//获得文件大小
DWORD CURLImage::GetSize()
{
return dwSize;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -