コード例 #1
0
void UploadVideoImage(LPVOID lpParam)
{
	UploadVideoImageInfo* pUploadInfo = (UploadVideoImageInfo*)lpParam;

	string PackageDataSegment;
	PackageDataSegment.append("site=");
	PackageDataSegment.append(Encoding::Convert(pUploadInfo->strSite, CP_ACP));
	PackageDataSegment.append("&videoid=");
	PackageDataSegment.append(Encoding::Convert(pUploadInfo->strVideoId, CP_ACP));
	PackageDataSegment.append("&xml=%3C%3Fxml%20version%3D%221.0%22%3F%3E%0D%0A%3CFile%20xmlns%3Adt%3D%22urn%3Aschemas-microsoft-com%3Adatatypes%22%3E%3CName%3E");
	PackageDataSegment.append(Encoding::Convert(pUploadInfo->GetFileName(), CP_ACP));
	PackageDataSegment.append("%3C/Name%3E%3CData%20dt%3Adt%3D%22bin.hex%22%3E");
	PackageDataSegment.append(pUploadInfo->GetFileData());
	PackageDataSegment.append("%3C/Data%3E%3C/File%3E");

	vector<BYTE> vPostData(PackageDataSegment.length());
	memcpy(&vPostData.at(0), PackageDataSegment.c_str(), PackageDataSegment.length());

	vector<BYTE> vResponseData;
	WebClient::Download(TEXT("http://wizard2.webdev.com/cgi-bin/article/uploadimages4video"), vResponseData, vPostData);
	vResponseData.push_back(0);

	Encoding encode;
	TSTLSTRING strRetValue = CW2T(encode.Convert((const char*)&vResponseData.at(0), CP_ACP).c_str());

	delete pUploadInfo;
}
コード例 #2
0
void DeleteVideoToServer(LPVOID lpParam)
{
	TCHAR* pKeyBuffer = (TCHAR*)lpParam;
	TSTLSTRING strKey = TSTLSTRING(pKeyBuffer);
	delete [] pKeyBuffer;

	VideoInfo item = VideoDataManager::GetInstance().GetVideoInfo(strKey);

	string PackageDataSegment("VideoID=");
	PackageDataSegment.append(CT2A(item.VideoID.c_str()));

	vector<BYTE> vPostData(PackageDataSegment.length());
	memcpy(&vPostData.at(0), PackageDataSegment.c_str(), PackageDataSegment.length());

	try
	{
		vector<BYTE> vResponseData;
		WebClient::Download(VideoConfig::GetInstance().GetVideoProxyDeleteVideoUrl(), vResponseData, vPostData);
		vResponseData.push_back(0);

		Encoding encode;
		TSTLSTRING strRetValue = CW2T(encode.Convert((const char*)&vResponseData.at(0), CP_UTF8).c_str());
		TSTLSTRING::size_type pos = strRetValue.find(TEXT(":"));
		if(pos == TSTLSTRING::npos)
		{
			TSTLSTRING ErrMsg(TEXT("·þÎñÆ÷·µ»ØÒì³££¡£¨"));
			ErrMsg.append(strRetValue);
			ErrMsg.append(TEXT("£©"));
			VideoDataManager::GetInstance().ErrorDeleteVideoAndResume(strKey, ErrMsg);
			throw Exception(ErrMsg);
		}
		if(TEXT("OK") == strRetValue.substr(0, pos))
		{
			TSTLSTRING strMsg(item.VideoName);
			CTipsDlg::ShowTips(strMsg, false);
			VideoDataManager::GetInstance().LocalDeleteVideo(strKey);
		}
		else
		{
			TSTLSTRING ErrMsg(TEXT("ɾ³ýÊÓƵʧ°Ü£¡£¨"));
			ErrMsg.append(strRetValue.substr(pos + 1));
			ErrMsg.append(TEXT("£©"));
			VideoDataManager::GetInstance().ErrorDeleteVideoAndResume(strKey, ErrMsg);
			throw Exception(ErrMsg);
		}
	}
	catch(Exception& error)
	{
		VideoDataManager::GetInstance().VideoFail(strKey, error.GetMessage());
		MessageBox(NULL, error.GetMessage().c_str(), TEXT("´íÎó"), MB_OK|MB_ICONERROR);
	}

}
コード例 #3
0
ファイル: File.cpp プロジェクト: NickeyWoo/EditorAssistant
TSTLSTRING File::ReadText(TSTLSTRING path, UINT uCode)
{
	HANDLE hFile = CreateFile(path.c_str(), FILE_READ_DATA, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	if(hFile == INVALID_HANDLE_VALUE)
		throw Exception(TEXT("´ò¿ªÎļþʧ°Ü¡£"));

	DWORD dwSize = ::GetFileSize(hFile, NULL) + 1;
	char* lpBuffer = new char[dwSize];
	memset(lpBuffer, 0, dwSize);
	DWORD dwReadSize = 0;
	if(!ReadFile(hFile, lpBuffer, dwSize, &dwReadSize, NULL))
	{
		delete [] lpBuffer;
		CloseHandle(hFile);
		throw Exception(TEXT("¶ÁÈ¡Îļþʧ°Ü"));
	}

	Encoding encode;
	TSTLSTRING strContent = encode.Convert(lpBuffer, uCode);
	delete [] lpBuffer;
	CloseHandle(hFile);

	return strContent;
}
コード例 #4
0
void CreateVideoToServerWithoutArticle(LPVOID lpParam)
{
	wchar_t* pVideoKey = (wchar_t*)lpParam;
	TSTLSTRING strKey = TSTLSTRING(CW2T(pVideoKey));
	delete [] pVideoKey;

	VideoInfo item = VideoDataManager::GetInstance().GetVideoInfo(strKey);
	try
	{
		TSTLSTRING FileMD5 = FileHash::MD5(item.VideoFilePath);
		DWORD dwFileSize = FileHash::GetFileSize(item.VideoFilePath);

		string PackageDataSegment;
		PackageDataSegment.append("Name=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoName, CP_UTF8)));
		PackageDataSegment.append("&SourceId=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoSource, CP_UTF8)));
		PackageDataSegment.append("&Author=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoAuthor, CP_UTF8)));
		PackageDataSegment.append("&Channel=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoChannel, CP_UTF8)));
		PackageDataSegment.append("&Creator=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoCreator, CP_UTF8)));
		PackageDataSegment.append("&CatalogId=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoCatalog, CP_UTF8)));
		PackageDataSegment.append("&Content=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoContent, CP_UTF8)));
		PackageDataSegment.append("&Keyword=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoKeyword, CP_UTF8)));
		PackageDataSegment.append("&MD5=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(FileMD5, CP_UTF8)));
		PackageDataSegment.append("&VideoSize=");
		PackageDataSegment.append(Encoding::UrlEncoding(boost::lexical_cast<std::string, DWORD>(dwFileSize)));

		vector<BYTE> vPostData(PackageDataSegment.length());
		memcpy(&vPostData.at(0), PackageDataSegment.c_str(), PackageDataSegment.length());

		vector<BYTE> vResponseData;
		WebClient::Download(VideoConfig::GetInstance().GetVideoProxyCreateVideoInfoUrl(), vResponseData, vPostData);
		vResponseData.push_back(0);

		Encoding encode;
		TSTLSTRING strRetValue = CW2T(encode.Convert((const char*)&vResponseData.at(0), CP_UTF8).c_str());
		TSTLSTRING::size_type pos = strRetValue.find(TEXT(":"));
		if(pos == TSTLSTRING::npos)
		{
			TSTLSTRING ErrMsg(TEXT("·þÎñÆ÷·µ»ØÒì³££¡£¨"));
			ErrMsg.append(strRetValue);
			ErrMsg.append(TEXT("£©"));
			throw Exception(ErrMsg);
		}
		if(TEXT("OK") == strRetValue.substr(0, pos))
		{
			TSTLSTRING strVideoId;
			TSTLSTRING::size_type posId = strRetValue.find(TEXT("-"));
			if(posId == TSTLSTRING::npos)
			{
				VideoDataManager::GetInstance().LocalDeleteVideo(strKey);
				MessageBox(NULL, TEXT("¸ÃÊÓƵÒѾ­ÉÏ´«£¡"), TEXT("Ìáʾ"), MB_OK|MB_ICONINFORMATION);
			}
			else
			{
				strVideoId = strRetValue.substr(posId + 1);

				CVideoInfoDataManager& dataMgr = VideoDataManager::GetInstance();
				dataMgr.SetVideoId(strKey, strRetValue.substr(pos + 1));

				try
				{
					QQPlay play;
					vector<TSTLSTRING> vVideoPic = play.GetPictures(item.VideoFilePath);

					for(vector<TSTLSTRING>::iterator iter=vVideoPic.begin();
						iter!=vVideoPic.end();
						++iter)
					{
						UploadVideoImageInfo* pUploadInfo = new UploadVideoImageInfo();
						pUploadInfo->strfile = *iter;
						pUploadInfo->strSite = item.VideoChannel;
						pUploadInfo->strVideoId = strVideoId;

						UploadImageThread::GetInstance().SendMessage(WM_UPLOADVIDEOIMG, pUploadInfo);
					}

				}
				catch(Exception& error)
				{
					MessageBox(NULL, error.GetMessage().c_str(), TEXT("´íÎó"), MB_OK|MB_ICONERROR);
				}
			}
		}
		else
		{
			TSTLSTRING ErrMsg(TEXT("Ìí¼ÓÊÓƵʧ°Ü£¡£¨"));
			ErrMsg.append(strRetValue.substr(pos + 1));
			ErrMsg.append(TEXT("£©"));
			throw Exception(ErrMsg);
		}
	}
	catch(Exception& error)
	{
		VideoDataManager::GetInstance().VideoFail(strKey, error.GetMessage());
		MessageBox(NULL, error.GetMessage().c_str(), TEXT("´íÎó"), MB_OK|MB_ICONERROR);
	}
}
コード例 #5
0
void CreateVideoToServer(LPVOID lpParam)
{
	wchar_t* pVideoKey = (wchar_t*)lpParam;
	TSTLSTRING strKey = TSTLSTRING(CW2T(pVideoKey));
	delete [] pVideoKey;

	VideoInfo item = VideoDataManager::GetInstance().GetVideoInfo(strKey);
	try
	{
		TSTLSTRING FileMD5 = FileHash::MD5(item.VideoFilePath);
		DWORD dwFileSize = FileHash::GetFileSize(item.VideoFilePath);

		string PackageDataSegment;
		PackageDataSegment.append("Name=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoName, CP_UTF8)));
		PackageDataSegment.append("&SourceId=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoSource, CP_UTF8)));
		PackageDataSegment.append("&Author=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoAuthor, CP_UTF8)));
		PackageDataSegment.append("&Channel=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoChannel, CP_UTF8)));
		PackageDataSegment.append("&Creator=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoCreator, CP_UTF8)));
		PackageDataSegment.append("&CatalogId=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoCatalog, CP_UTF8)));
		PackageDataSegment.append("&Content=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoContent, CP_UTF8)));
		PackageDataSegment.append("&Keyword=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(item.VideoKeyword, CP_UTF8)));
		PackageDataSegment.append("&MD5=");
		PackageDataSegment.append(Encoding::UrlEncoding(Encoding::Convert(FileMD5, CP_UTF8)));
		PackageDataSegment.append("&VideoSize=");
		PackageDataSegment.append(Encoding::UrlEncoding(boost::lexical_cast<std::string, DWORD>(dwFileSize)));

		vector<BYTE> vPostData(PackageDataSegment.length());
		memcpy(&vPostData.at(0), PackageDataSegment.c_str(), PackageDataSegment.length());

		vector<BYTE> vResponseData;
		WebClient::Download(VideoConfig::GetInstance().GetVideoProxyCreateVideoInfoUrl(), vResponseData, vPostData);
		vResponseData.push_back(0);

		Encoding encode;
		TSTLSTRING strRetValue = CW2T(encode.Convert((const char*)&vResponseData.at(0), CP_UTF8).c_str());
		TSTLSTRING::size_type pos = strRetValue.find(TEXT(":"));
		if(pos == TSTLSTRING::npos)
		{
			TSTLSTRING ErrMsg(TEXT("·þÎñÆ÷·µ»ØÒì³££¡£¨"));
			ErrMsg.append(strRetValue);
			ErrMsg.append(TEXT("£©"));
			throw Exception(ErrMsg);
		}
		if(TEXT("OK") == strRetValue.substr(0, pos))
		{
			TSTLSTRING strVideoId;
			TSTLSTRING::size_type posId = strRetValue.find(TEXT("-"));
			if(posId == TSTLSTRING::npos)
			{
				VideoDataManager::GetInstance().LocalDeleteVideo(strKey);
				MessageBox(NULL, TEXT("¸ÃÊÓƵÒѾ­ÉÏ´«£¬ÕýÔÚ´´½¨ÊÓƵÎÄÕÂ..."), TEXT("Ìáʾ"), MB_OK|MB_ICONINFORMATION);

				strVideoId = strRetValue.substr(pos + 1);

				TSTLSTRING url(TEXT("http://wizard2.webdev.com/tcms/article/videoarticle.php?VideoID="));
				url.append(strVideoId);
				ShellExecute(NULL, TEXT("open"), url.c_str(), TEXT(""), NULL, SW_SHOWDEFAULT);
			}
			else
			{
				strVideoId = strRetValue.substr(posId + 1);

				CVideoInfoDataManager& dataMgr = VideoDataManager::GetInstance();
				dataMgr.SetVideoId(strKey, strRetValue.substr(pos + 1));

				try
				{
					QQPlay play;
					vector<TSTLSTRING> vVideoPic = play.GetPictures(item.VideoFilePath);

					TSTLSTRING strAppPath = VideoApp::GetInstance().GetAppPath();
					strAppPath = strAppPath.substr(0, strAppPath.find_last_of(TEXT("\\")) + 1);
					strAppPath.append(TEXT("Temp\\ImageData\\"));
					Directory::CreateDirectory(strAppPath);

					GUID guid;
					HRESULT hr = CoCreateGuid(&guid);
					if(hr == S_OK)
					{
						wchar_t buffer[39];
						memset(buffer, 0, 39*sizeof(wchar_t));
						StringFromGUID2(guid, buffer, 39);
						strAppPath.append(CW2T(buffer));

						HANDLE hDataFile = CreateFile(strAppPath.c_str(), FILE_ALL_ACCESS, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
						if(hDataFile == INVALID_HANDLE_VALUE)
							throw Exception(TEXT("ÊÓƵ½Øͼʧ°Ü¡£"));

						TSTLSTRING content;
						UINT count = vVideoPic.size();
						for(UINT i=0; i<count; ++i)
						{
							content.append(vVideoPic.at(i));
							if(i < count - 1)
								content.append(TEXT("\r\n"));
						}

						DWORD dwWritten = 0;
						string data = string(CT2A(content.c_str()));
						if(!WriteFile(hDataFile, data.c_str(), data.length(), &dwWritten, NULL))
							throw Exception(TEXT("ÊÓƵ½Øͼʧ°Ü¡£"));
						
						CloseHandle(hDataFile);

						TSTLSTRING url(TEXT("http://wizard2.webdev.com/tcms/article/videoarticle.php?VideoID="));
						url.append(strVideoId);
						url.append(TEXT("&"));
						url.append(buffer);
						ShellExecute(NULL, TEXT("open"), url.c_str(), TEXT(""), NULL, SW_SHOWDEFAULT);
					}
					else
						throw Exception(TEXT("´´½¨ÊÓƵ½ØͼΨһ±êʾʧ°Ü¡£"));
				}
				catch(Exception& error)
				{
					MessageBox(NULL, error.GetMessage().c_str(), TEXT("´íÎó"), MB_OK|MB_ICONERROR);
				}
			}
		}
		else
		{
			TSTLSTRING ErrMsg(TEXT("Ìí¼ÓÊÓƵʧ°Ü£¡£¨"));
			ErrMsg.append(strRetValue.substr(pos + 1));
			ErrMsg.append(TEXT("£©"));
			throw Exception(ErrMsg);
		}
	}
	catch(Exception& error)
	{
		VideoDataManager::GetInstance().VideoFail(strKey, error.GetMessage());
		MessageBox(NULL, error.GetMessage().c_str(), TEXT("´íÎó"), MB_OK|MB_ICONERROR);
	}
}