⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 urlimage.cpp

📁 C++编写的部分有价值的源代码,说明很多
💻 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 + -