コード例 #1
0
ファイル: 81Gyazo.cpp プロジェクト: abcsharp/81Gyazo_Win
//エントリーポイント
int __stdcall wWinMain(HINSTANCE Instance,HINSTANCE,LPWSTR,int)
{
	MSG Msg;

	std::vector<wchar_t> Buffer(MAX_PATH,0);
	DWORD Length;

	//自身のディレクトリを取得する
	Length=GetModuleFileName(nullptr,Buffer.data(),MAX_PATH);
	std::wstring ThisPath(Buffer.data());
	ThisPath[ThisPath.find_last_of(L'\\')]=L'\0';

	//カレントディレクトリをexeと同じ場所に設定
	SetCurrentDirectory(ThisPath.c_str());

	//Shiftキーが押されていたらアップロードした画像を開かない
	ShowBrowser=!(GetKeyState(VK_SHIFT)&0x8000);

	if(Gdiplus::GdiplusStartup(&Token,&StartupInput,nullptr)!=Gdiplus::Status::Ok) return 1;

	Brush.reset(CreateSolidBrush(RGB(100,100,100)),[](void* Obj){if(Obj) DeleteObject(Obj);});

	std::atexit(ShutdownGdiplus);
	//引数にファイルが指定されていたら
	if(__argc==2){
		//ファイルをアップロードして終了
		if(IsPNG(__wargv[1])){
			//PNG はそのままアップロード
			UploadFile(__wargv[1],ShowBrowser);
		}else{
			//PNG 形式に変換
			std::vector<wchar_t> TempDirectory(MAX_PATH,0),TempFile(MAX_PATH,0);
			GetTempPath(MAX_PATH,TempDirectory.data());
			GetTempFileName(TempDirectory.data(),TempPrefix,0,TempFile.data());
			if(ConvertPNG(TempFile.data(),__wargv[1])){
				//アップロード
				UploadFile(TempFile.data(),ShowBrowser);
			}else{
				//PNGに変換できなかった...
				MessageBox(nullptr,L"画像をPNG形式に変換する事が出来ません。",Title,MB_OK|MB_ICONERROR);
			}
			DeleteFile(TempFile.data());
		}
		return true;
	}

	//ウィンドウクラスを登録
	RegisterWindowClass(Instance);

	//アプリケーションの初期化
	if(!InitInstance(Instance)) return 1;
	
	//メインメッセージループ
	while(GetMessage(&Msg,nullptr,0,0)){
		TranslateMessage(&Msg);
		DispatchMessage(&Msg);
	}
	return (int)Msg.wParam;
}
コード例 #2
0
ファイル: ftpfile.cpp プロジェクト: 0xmono/miranda-ng
int TabsrmmButtonPressed(WPARAM hContact, LPARAM lParam) 
{
	CustomButtonClickData *cbc = (CustomButtonClickData *)lParam;

	if (!strcmp(cbc->pszModule, MODULE) && cbc->dwButtonId == 1 && hContact) 
	{
		if (cbc->flags == BBCF_ARROWCLICKED) 
		{
			HMENU hMenu = CreatePopupMenu();
			if (hMenu) 
			{
				int iCount = 0;
				for (UINT i = 0; i < ServerList::FTP_COUNT; i++) 
				{
					if (ftpList[i]->bEnabled)
					{
						HMENU hModeMenu = CreatePopupMenu();
						AppendMenu(hModeMenu, MF_STRING, i + UploadJob::FTP_RAWFILE, TranslateT("Upload file"));
						AppendMenu(hModeMenu, MF_STRING, i + UploadJob::FTP_ZIPFILE, TranslateT("Zip and upload file"));
						AppendMenu(hModeMenu, MF_STRING, i + UploadJob::FTP_ZIPFOLDER, TranslateT("Zip and upload folder"));
						AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT_PTR)hModeMenu, ftpList[i]->stzName);
						DestroyMenu(hModeMenu);
						iCount++;
					}
				}

				if (iCount != 0) 
				{
					POINT pt;
					GetCursorPos(&pt);
					HWND hwndBtn = WindowFromPoint(pt);
					if (hwndBtn) 
					{
						RECT rc;
						GetWindowRect(hwndBtn, &rc);
						SetForegroundWindow(cbc->hwndFrom);
						int selected = TrackPopupMenu(hMenu, TPM_RETURNCMD, rc.left, rc.bottom, 0, cbc->hwndFrom, 0);
						if (selected != 0)
						{
							int ftpNum = selected & (1|2|4);
							int mode = selected & (UploadJob::FTP_RAWFILE | UploadJob::FTP_ZIPFILE | UploadJob::FTP_ZIPFOLDER); 
							UploadFile(hContact, ftpNum, (UploadJob::EMode)mode);
						}
					}
				}

				DestroyMenu(hMenu);
			}
		} 
		else
		{
			UploadFile(hContact, 0, UploadJob::FTP_RAWFILE);
		}
	}

	return 0;
}
コード例 #3
0
ファイル: AppealDlg.cpp プロジェクト: lincoln56/robinerp
BOOL CAppealDlg::PreTranslateMessage(MSG* pMsg)
{
    // TODO: 在此添加专用代码和/或调用基类
    CBcfFile fMsg(CBcfFile::GetAppPath()+"ClientMessage.bcf");

    if (pMsg->message == WM_USER + 1)
    {
        if (pMsg->wParam == 1 || pMsg->wParam == 5)
        {
            //wushuqun 2009.5.22
            //AFCMessageBox(fMsg.GetKeyVal("AppealDlg","SendAppealError","投诉文件上传失败!"));
            DUIMessageBox(m_hWnd,MB_ICONINFORMATION|MB_OK,"系统提示",false,fMsg.GetKeyVal("AppealDlg","SendAppealError","投诉文件上传失败!"));

            return CDialog::PreTranslateMessage(pMsg);
        }
        if (m_strInfoFileName == "" || m_strInfoFileWholeName == "")
        {
            return CDialog::PreTranslateMessage(pMsg);
        }

        if (pMsg->wParam == 4) //当zxh录像文件输送成功后,再传送txt文件
        {
            CStringArray csa;
            csa.SetSize(0,6);
            csa.Add(m_strFtpAddress);
            csa.Add(m_strFtpUserName);
            csa.Add(m_strFtpPwd);
            csa.Add(m_strInfoFileName);   //远程文件名字
            csa.Add(m_strInfoFileWholeName);       //本地文件名字
            int b=UploadFile(&csa,this->m_hWnd,WM_USER+2);
        }
    }
    else if(pMsg->message == WM_USER + 2)
    {
        if (pMsg->wParam == 1 || pMsg->wParam == 5)
        {
            //wushuqun 2009.5.22
            //AFCMessageBox(fMsg.GetKeyVal("AppealDlg","SendAppealError","投诉文件上传失败!"));
            DUIMessageBox(m_hWnd,MB_ICONINFORMATION|MB_OK,"系统提示",false,fMsg.GetKeyVal("AppealDlg","SendAppealError","投诉文件上传失败!"));

            return CDialog::PreTranslateMessage(pMsg);
        }
        if (pMsg->wParam == 4)
        {
            //AFCMessageBox(fMsg.GetKeyVal("AppealDlg","SendAppealSuccess","投诉文件已经上传成功!"));
            DUIMessageBox(m_hWnd,MB_ICONINFORMATION|MB_OK,"系统提示",false,fMsg.GetKeyVal("AppealDlg","SendAppealSuccess","投诉文件已经上传成功!"));
        }
        //删除产生的中间文件

        //
        //删除生成的信息文件
        ::DeleteFile(m_strInfoFileWholeName);

        m_strInfoFileName = "";
        m_strInfoFileWholeName = "";

    }

    return CDialog::PreTranslateMessage(pMsg);
}
コード例 #4
0
ファイル: MyDataBase.cpp プロジェクト: wangweihao/CloudBackup
 //监控文件
 int MonitorFile(std::string UserFilePath , std::string UserFileSize , std::string ServerFilePath , std::string MD5 , int flag)  {
     int Flag = UploadFile(UserFilePath , UserFileSize , ServerFilePath , MD5 , flag);
     if( 1 == Flag )   {
         return true;
     }
     return false;
 }
コード例 #5
0
ファイル: filesenddialog.cpp プロジェクト: eringus/leechcraft
	void FileSendDialog::SendSharer (const SharerInfo& info)
	{
		const auto& filename = Ui_.FileEdit_->text ();

		auto sharer = qobject_cast<IWebFileStorage*> (info.Sharer_);
		sharer->UploadFile (filename, info.Service_);
		new PendingUploadPaster (info.Sharer_, Entry_, EntryVariant_, filename);
	}
コード例 #6
0
ファイル: main.cpp プロジェクト: jishuo1213/vcprojects
int _tmain(int argc, _TCHAR* argv[]) {
	if (argc == 1) {
		bool res = CheckNetWorkWell();
		printf("%d\n", res);
		return -1;
	}

	if (_tcscmp(argv[1], _T("/d")) == 0) {
		if (argc >= 5) {
			TCHAR * inUrl = argv[2];//下载地址
			TCHAR* filepath = argv[3];//文件保存路径
			TCHAR* uuid = argv[4];//文件编号
			TCHAR * file_name = NULL;//文件名

			if (argc > 6) {
				if (_tcscmp(argv[5], _T("/name")) == 0) {
					file_name = argv[6];
				} else {
					Log(_T("%s"), _T("参数传递错误,应该是/name"));
					return -1;
				}
			} else if (argc == 6) {
				Log(_T("%s"), _T("参数传递少,/name 后面应该有文件名"));
				return -1;
			}
			return  downloadFile(inUrl, filepath, uuid, file_name);
		}
	} else if (_tcscmp(argv[1], _T("/upload")) == 0) {
		char *uploadInfo = WcharToUTF8_New(argv[3]);
		//UploadInfo *info = new UploadInfo(argv[2], uploadInfo);
		UploadInfo info(argv[2], uploadInfo);
		UploadFile(&info);
		delete[]uploadInfo;
	} else {
		if (argc >= 4) {
			TCHAR * inUrl = argv[1];
			TCHAR* filepath = argv[2];
			TCHAR* uuid = argv[3];
			TCHAR * file_name = NULL;

			if (argc > 5) {
				if (_tcscmp(argv[4], _T("/name")) == 0) {
					file_name = argv[5];
				} else {
					Log(_T("%s"), _T("参数传递错误,应该是/name"));
					return -1;
				}
			} else if (argc == 5) {
				Log(_T("%s"), _T("参数传递少,/name 后面应该有文件名"));
				return -1;
			}
			return downloadFile(inUrl, filepath, uuid, file_name);
		}
	}
	return 0;
}
コード例 #7
0
ファイル: pnlWFMLoader.cpp プロジェクト: limemicro/lms6suite
void pnlWFMLoader::OnbtnLoadWCDMAClick(wxCommandEvent& event)
{
    if (UploadFile("lms-suite_wfm/wcdma.wfm") < 0)
        btnLoadWCDMA->SetValue(0);
    else
    {
        btnLoadOnetone->SetValue(0);
        btnLoadWCDMA->SetValue(1);
        btnLoadCustom->SetValue(0);
    }
}
コード例 #8
0
ファイル: Request.cpp プロジェクト: DavidFarago/mongoose-cpp
    void Request::handleUploads()
    {
        char var_name[1024];
        char file_name[1024];
        const char *data;
        int data_len;

        if (mg_parse_multipart(connection->content, connection->content_len,
                    var_name, sizeof(var_name), file_name, sizeof(file_name), &data, &data_len)) {
            uploadFiles.push_back(UploadFile(string(file_name), string(data, data_len)));
        }
    }
コード例 #9
0
ファイル: ftpfile.cpp プロジェクト: 0xmono/miranda-ng
INT_PTR UploadService(WPARAM wParam, LPARAM lParam) 
{
	FTPUPLOAD* ftpu = (FTPUPLOAD *)lParam;
	if (ftpu == NULL || ftpu->cbSize != sizeof(FTPUPLOAD))
		return 1;

	int ftpNum = (ftpu->ftpNum == FNUM_DEFAULT) ? opt.defaultFTP : ftpu->ftpNum - 1;
	int mode = (ftpu->mode * GenericJob::FTP_RAWFILE);

	UploadFile(ftpu->hContact, ftpNum, (GenericJob::EMode)mode, (void**)ftpu->pstzObjects, ftpu->objectCount, ftpu->flags);
	return 0; 
}
コード例 #10
0
ファイル: pnlWFMLoader.cpp プロジェクト: limemicro/lms6suite
void pnlWFMLoader::OnbtnLoadCustomClick(wxCommandEvent& event)
{
    if (UploadFile(txtFilename->GetLabel()) < 0)
    {
        btnLoadCustom->SetValue(0);
    }
    else
    {
        btnLoadOnetone->SetValue(0);
        btnLoadWCDMA->SetValue(0);
        btnLoadCustom->SetValue(1);
    }
}
コード例 #11
0
ファイル: FTPSession.cpp プロジェクト: Praymundo/NppFTP
int FTPSession::UploadFileCache(const TCHAR * sourcefile) {
	if (!m_running)
		return -1;

	if (sourcefile == NULL)
		return -1;

	char target[MAX_PATH];
	target[0] = 0;

	int res = m_currentProfile->GetCacheExternal(sourcefile, target, MAX_PATH);
	if (res != 0)
		return res;

	return UploadFile(sourcefile, target, false, 0);
}
コード例 #12
0
ファイル: tLibs3.cpp プロジェクト: dulton/53_hero
void tLibs3::StartNextFile()
{
    m_Mutex.lock();

    // Check there are files in the queue
    if( m_Transfers.isEmpty() != true )
    {
        // Check that no process is running to process another file
        if( m_Process.state() == QProcess::NotRunning )
        {
            UploadFile( m_Transfers.first() );
        }
    }

    m_Mutex.unlock();
}
コード例 #13
0
int cgiMain() 
{
	afreshOrient("cgi.txt", "a", stdout); //test
	/* Send the content type, letting the browser know this is HTML */
	cgiHeaderContentType("text/html");

	/* If a submit button has already been clicked, act on the 
		submission of the form. */
	if (cgiFormSubmitClicked("uploadSubmit") == cgiFormSuccess) {
		if(UiReturn(UploadFile()) != SUCCESS)
			exit(EFAILED);
	} else if (cgiFormSubmitClicked("rebootSubmit") == cgiFormSuccess) {
		my_reboot();
	}

	exit(SUCCESS);
}
コード例 #14
0
int CMeterUploader::UploadFileList(char **pList, int nCount)
{
	time_t	    tmUpload, now;
	int		i,j, nSuccess=0;
    int         retryCount=10;
    BOOL    getPermit;

	time(&tmUpload);

	for(i=0; i<nCount; i++)
	{	
		// 제한 시간이 초과되면 중단.
		time(&now);
		if ((int)abs(((now-tmUpload)/60)) > m_nUploadTryTime)
			break;

        for(j=0; j<retryCount; j++) {
            if((getPermit=SetBusyFile(pList[i]))) break;
            usleep(100000);
        }
        if(!getPermit) {
            XDEBUG("Get File Handle fail : %s\r\n", pList[i]);
            break;
        } 
		XDEBUG("Upload try : %s\r\n", pList[i]);
		if (!UploadFile(pList[i]))
		{
		    XDEBUG("Upload fail : %s\r\n", pList[i]);
            ResetBusyFile(pList[i]);
			break;
		}
		XDEBUG("Upload success : %s\r\n", pList[i]);

        UploadComplete(pList[i]);        
        ResetBusyFile(pList[i]);

        nSuccess ++;
	}

	return nSuccess;
}
コード例 #15
0
ファイル: AI1.cpp プロジェクト: gmoromisato/Hexarc
CString ExecuteUploadCertificate (CSocket &theSocket, const CString &sCmd)
	{
	char *pPos = sCmd.GetParsePointer() + STR_UPLOAD_CERTIFICATE_PREFIX.GetLength();
	
	//	Skip whitespace

	while (*pPos == ' ')
		pPos++;
	
	//	Get the filespec

	char *pStart = pPos;
	while (*pPos != '\0')
		pPos++;

	CString sFilespec(pStart, pPos - pStart);

	//	Upload

	return UploadFile(theSocket, CMD_UPLOAD, CString("/Arc.certificates"), sFilespec);
	}
コード例 #16
0
ファイル: AI1.cpp プロジェクト: gmoromisato/Hexarc
CString ExecuteUpload (CSocket &theSocket, const CString &sCmd)
	{
	char *pPos = sCmd.GetParsePointer() + STR_UPLOAD_PREFIX.GetLength();
	
	//	Get the filePath

	if (*pPos == '\"')
		pPos++;

	char *pStart = pPos;
	while (*pPos != ' ' && *pPos != '\"' && *pPos != '\0')
		pPos++;

	CString sFilePath(pStart, pPos - pStart);
	if (*pPos != '\0')
		pPos++;

	if (*pPos == '\"')
		pPos++;

	//	Skip whitespace

	while (*pPos == ' ')
		pPos++;
	
	//	Get the filespec

	pStart = pPos;
	while (*pPos != '\0')
		pPos++;

	CString sFilespec(pStart, pPos - pStart);

	//	Load the file

	return UploadFile(theSocket, CMD_UPLOAD, sFilePath, sFilespec);
	}
コード例 #17
0
ファイル: Client.c プロジェクト: yoloTCPIP/TCP-IP-Project
int main(int argc, char**argv) {  	
 struct sockaddr_in addr, cl_addr;    
 int sockfd, ret, buf;    
 char buffer[BUFSIZE];  
 char choice[10];  
 struct hostent * server;  
 char * serverAddr;  
 sigset_t set1, set2;
 sigfillset(&set1);  
 sigfillset(&set2);
 sigdelset(&set2, SIGINT);	
 sigdelset(&set2, SIGQUIT);
 sigprocmask(SIG_SETMASK, &set1, (void*)0); 
 if (argc < 2) {  
  printf("usage: client < ip address >\n");  
  exit(1);    
 }  
  
 serverAddr = argv[1];   
   
 sockfd = socket(AF_INET, SOCK_STREAM, 0);    
 if (sockfd < 0) {    
  printf("Error creating socket!\n");    
  exit(1);    
 }    
 printf("Socket created...\n");     
  
 memset(&addr, 0, sizeof(addr));    
 addr.sin_family = AF_INET;    
 addr.sin_addr.s_addr = inet_addr(serverAddr);  
 addr.sin_port = SERV_TCP_PORT;       
  
 ret = connect(sockfd, (struct sockaddr *) &addr, sizeof(addr));    
 if (ret < 0) {    
  printf("Error connecting to the server!\n");    
  exit(1);    
 }    
 printf("Connected to the server...\n");    

 memset(buffer, 0, BUFSIZE);  
 do{ 
    menu();
    printf("Please enter the message to sent to server [TYPE /q to EXIT]\n==> ");  
    gets(buffer);
    buf = atoi(buffer);
    switch (buf){
   	case 1:
	    createFolder();
	    break;
   	case 2:
	    createFile();
	    break;
   	case 3:
	    CopyCurrFolder();
	    break;
   	case 4:
	    CopyAnothFolder();
	    break;
   	case 5:
	    deleteFile();
	    break;
   	case 6:
	    ViewFile();
	    break;
   	case 7:
	    DownloadFile();
	    break;
   	case 8:
	    UploadFile();
	    break;
	case 9:
 	    printf("\nThank you! Please visit again...\n\n");    
	    return;
	default:
	    printf("\nInvalid Input\n\n");
    }
    sendto(sockfd, buffer, BUFSIZE, 0, (struct sockaddr *) &addr, sizeof(addr)); 
 
    printf("\n");  
 } while(strcmp(buffer,"/q"));
 
 if (buffer == "/q")
   sigprocmask(SIG_UNBLOCK, &set1, (void*)0); //explain
 close(sockfd);
 fcloseall();    
 return 0;     
}   // for main function
コード例 #18
0
ファイル: ftpfile.cpp プロジェクト: 0xmono/miranda-ng
INT_PTR ContactMenuService(WPARAM hContact, LPARAM lParam) 
{
	int ftpNum = lParam & (1|2|4);
	int mode = lParam & (UploadJob::FTP_RAWFILE | UploadJob::FTP_ZIPFILE | UploadJob::FTP_ZIPFOLDER); 
	return UploadFile(hContact, ftpNum, (UploadJob::EMode)mode);
}
コード例 #19
0
ファイル: ftpfile.cpp プロジェクト: 0xmono/miranda-ng
int UploadFile(MCONTACT hContact, int iFtpNum, GenericJob::EMode mode)
{
	return UploadFile(hContact, iFtpNum, mode, NULL, 0, 0); 
}
コード例 #20
0
ファイル: MeterReader.cpp プロジェクト: bearxiong99/new_swamm
void CMeterReader::SingleMetering(CZigbeeWorker *pWorker, METERINGJOB *pJob)
{
    char            fileName[64];
	METER_STAT		state;
	CMDPARAM		param;
	CChunk			chunk(1024);
    ENDIENTRY       endi;
	char			szGUID[20];
	int				nError;
    time_t          now;

	eui64toa(&pJob->id, szGUID);
	if (!m_pEndDeviceList->CopyEndDeviceByID(&pJob->id, &endi))
	{
		XDEBUG("METERREADER-ERROR: Cannot find EUID=%s\r\n", szGUID);
		return;
	}
	
	XDEBUG("\r\nMeterReader: Start (ID=%s, Option=%d, Offset=%d, Count=%d, Parser=%s)\r\n", 
        	szGUID, pJob->nOption, pJob->nOffset, pJob->nCount, endi.szParser);

	memset(&state, 0, sizeof(METER_STAT));
	memset(&param, 0, sizeof(CMDPARAM));
	memcpy(&param.id, &pJob->id, sizeof(EUI64));
    param.codi 		= GetCoordinator();
    param.nMeteringType = METERING_TYPE_SPECIAL;
	//param.nType		= PARSE_TYPE_READ;
	param.nOption	= pJob->nOption;
	param.nOffset	= pJob->nOffset;
	param.nCount	= pJob->nCount;
	param.pChunk	= &chunk;

	nError = m_pOndemander->Command(endi.szParser, &param, &state);
	if ((nError == ONDEMAND_ERROR_OK) && (chunk.GetSize() > 0))
	{
		XDEBUG("\r\n##################################\r\n");
		XDEBUG("MeterReader: %s, Length=%d\r\n", szGUID, chunk.GetSize());
		XDEBUG("##################################\r\n\r\n");

		// 검침 완료 시간
        time(&now);

        GetMtrFileName(&pJob->id, fileName);
        unlink(fileName);
		// 검침 데이터를 저장한다.
		WriteData(fileName, &pJob->id, chunk.GetBuffer(), chunk.GetSize());

		// 로그를 저장한다.
		m_pEndDeviceList->CopyEndDeviceByID(&pJob->id, &endi);
		METERING_LOG("%s [%s] %s Metering ok. (Elapse=%d sec)\r\n",
					szGUID, endi.szSerial, endi.szModel, state.nUseTime/1000);
		pJob->bOk = TRUE;

        XDEBUG("Recovery Metering : Data Uploading...  ");
	    UploadFile(fileName);
        XDEBUG("[Done]\r\n");
	    unlink(fileName);
	}
	else
	{
		// 검침 실패
		XDEBUG("\r\n##################################\r\n");
		XDEBUG("MeterReader: %s Fail.\r\n", szGUID);
		XDEBUG("##################################\r\n\r\n");

		// 검침 실패 로그 저장
		METERING_LOG("%s [%s] %s Metering fail.\r\n",
						szGUID, endi.szSerial, endi.szModel);
	}

	m_pEndDeviceList->VerifyEndDevice(&pJob->id);
	XDEBUG("\r\nMeterReader: End (ID=%s)\r\n", szGUID);
}
コード例 #21
0
void CMeterUploader::UploadMeteringData()
{
	DIR			*dir_fdesc;
	dirent		*dp;
	time_t		now;
	char		szTime[30];
	char		szFileName[128];
	char		szStart[25], szEnd[25];
	TIMESTAMP	tmStart, tmEnd;
	int			i, nFileCount = 0, nSuccess=0;

    if(!m_bUserRequest && !m_bImmediatelyRequest)
    {
	    m_bImmediatelyRequest = FALSE;
        if(!CheckUploadTime()) return;
    }
	m_bImmediatelyRequest = FALSE;

	time(&now);
	MakeTimeString(szTime, &now, TRUE);	

	// 최소값을 비교하여 보정한다.
	m_nUploadTryTime = MAX(m_nUploadTryTime, 1);

	XDEBUG("==================================================\r\n");
	XDEBUG(" Start metering upload (TIME=%s for %d min).\r\n", szTime, m_nUploadTryTime);
	XDEBUG("==================================================\r\n");

	UPLOAD_LOG("Start upload\r\n");

    if(m_bUserRequest) {
	    GetUploadRange(&tmStart, &tmEnd);
	    sprintf(szStart, "%04d%02d%02d%02d", 
			tmStart.year, tmStart.mon, tmStart.day, tmStart.hour);
	    sprintf(szEnd, "%04d%02d%02d%02d", 
			tmEnd.year, tmEnd.mon, tmEnd.day, tmEnd.hour);
    }

	if (m_bGprsPerfTestMode == FALSE)
	{
		dir_fdesc = opendir("/app/data");
		if (dir_fdesc != NULL)
		{
			for(; (dp=readdir(dir_fdesc));)
			{
#if     defined(_DIRENT_HAVE_D_TYPE)
				if (dp->d_type == DT_DIR)
					continue;
#endif
	
				if (dp->d_name[0] == '.')
					continue;

                if(m_bUserRequest) {
                    if (strncmp(dp->d_name, szStart, DATE_TIME_LEN) < 0) continue;
                    if (strncmp(dp->d_name, szEnd, DATE_TIME_LEN) > 0) continue;
                }else if(strlen(dp->d_name) > DATE_TIME_LEN) continue;

				sprintf(szFileName, "/app/data/%s", dp->d_name);
				m_pList[nFileCount] = strdup(szFileName);
				nFileCount++;
				if (nFileCount >= MAX_UPLOAD_FILE_COUNT)
					break;
			}
			closedir(dir_fdesc);

			if (nFileCount > 0)
			{
				// 목록을 Sort하고 업로드한다.
				SortFileList(m_pList, nFileCount);
				nSuccess = UploadFileList(m_pList, nFileCount);
			
				for(i=0; i<nFileCount; i++)
					free(m_pList[i]);	
			}
		}
	}
	else
	{
		printf("UPLOAD: GPRS Backhaul latency test . . .\r\n");
		UploadFile("/app/sw/test.dat");
	}

	UPLOAD_LOG("Total %d of %d file.\r\n", nSuccess, nFileCount);
	UPLOAD_LOG("End upload\r\n");

	time(&now);
	MakeTimeString(szTime, &now, TRUE);	
	if (!m_bUserRequest)
		time(&m_nLastUpload);

	XDEBUG("==================================================\r\n");
	XDEBUG(" Terminate metering upload (TIME=%s).\r\n", szTime);
	XDEBUG("==================================================\r\n");
	XDEBUG("\r\n");
}
コード例 #22
0
ファイル: ftpfile.cpp プロジェクト: 0xmono/miranda-ng
INT_PTR MainMenuService(WPARAM wParam, LPARAM lParam) 
{
	int ftpNum = wParam & (1|2|4);
	int mode = wParam & (UploadJob::FTP_RAWFILE | UploadJob::FTP_ZIPFILE | UploadJob::FTP_ZIPFOLDER); 
	return UploadFile(0, ftpNum, (UploadJob::EMode)mode);
}
コード例 #23
0
ファイル: AI1.cpp プロジェクト: gmoromisato/Hexarc
CString ExecuteUploadPackage (CSocket &theSocket, const CString &sCmd)
	{
	int i;
	char *pPos = sCmd.GetParsePointer() + STR_UPLOAD_PACKAGE_PREFIX.GetLength();
	
	//	Get the package name

	if (*pPos == '\"')
		pPos++;

	char *pStart = pPos;
	while (*pPos != ' ' && *pPos != '\"' && *pPos != '\0')
		pPos++;

	CString sPackageName(pStart, pPos - pStart);
	if (*pPos != '\0')
		pPos++;

	if (*pPos == '\"')
		pPos++;

	//	Skip whitespace

	while (*pPos == ' ')
		pPos++;
	
	//	Get the filespec

	pStart = pPos;
	while (*pPos != '\0')
		pPos++;

	CString sFilespec(pStart, pPos - pStart);

	//	Get the directory

	CString sPackageFolder = fileGetPath(sFilespec);
	CString sPackageDescFilespec = fileGetFilename(sFilespec);

	//	Upload the package descriptor

	CString sPackageDesc = strPattern("/Arc.services/%s.ars", sPackageName);
	printf("Uploading %s to /Arc.services/%s.ars...", (LPSTR)sFilespec, (LPSTR)sPackageName);
	CString sResult = UploadFile(theSocket, CMD_UPLOAD, sPackageDesc, sFilespec);
	printf("%s\n", (LPSTR)sResult);

	//	Now loop over all files in the directory

	TArray<CString> Files;
	if (!fileGetFileList(fileAppend(sPackageFolder, CString("*.*")), 
			FFL_FLAG_RELATIVE_FILESPEC | FFL_FLAG_RECURSIVE,
			&Files))
		{
		printf("ERROR: Unable to list directory: %s\\*.*\n", (LPSTR)sPackageFolder);
		return NULL_STR;
		}

	for (i = 0; i < Files.GetCount(); i++)
		{
		if (!strEquals(Files[i], sPackageDescFilespec))
			{
			CString sFilePath = strPattern("/Arc.services/%s/%s", sPackageName, CAeonInterface::FilespecToFilePath(Files[i]));
			printf("Uploading %s to %s...", (LPSTR)fileAppend(sPackageFolder, Files[i]), (LPSTR)sFilePath);
			CString sResult = UploadFile(theSocket, CMD_UPLOAD, sFilePath, fileAppend(sPackageFolder, Files[i]));
			printf("%s\n", (LPSTR)sResult);
			}
		}

	//	Refresh

	printf("Refreshing Hyperion...");
	return ExecuteArcologyCommand(theSocket, CMD_REFRESH_PACKAGES);
	}
コード例 #24
0
ファイル: 81Gyazo.cpp プロジェクト: abcsharp/81Gyazo_Win
//ウィンドウプロシージャ
LRESULT __stdcall WndProc(HWND WindowHandle,UINT Message,WPARAM WParam,LPARAM LParam)
{
	static bool CaptureStarted=false;
	static RECT CaptureRect={0};
	
	switch(Message){
	case WM_RBUTTONDOWN:
		//キャンセル
		DestroyWindow(WindowHandle);
		return DefWindowProc(WindowHandle,Message,WParam,LParam);
		break;
	case WM_TIMER:
		//ESCキー押下の検知
		if(GetKeyState(VK_ESCAPE)&0x8000){
			DestroyWindow(WindowHandle);
			return DefWindowProc(WindowHandle,Message,WParam,LParam);
		}
		break;
	case WM_MOUSEMOVE:
		if(CaptureStarted){
			//新しい座標をセット
			CaptureRect.right=LOWORD(LParam)+OffsetX;
			CaptureRect.bottom=HIWORD(LParam)+OffsetY;
			DrawRubberband(CaptureRect);
		}
		break;
	case WM_LBUTTONDOWN:
		//クリップ開始
		CaptureStarted=true;
		ShowWindow(LayerWindowHandle,SW_SHOW);
		
		//初期位置をセット
		CaptureRect.left=LOWORD(LParam)+OffsetX;
		CaptureRect.top=HIWORD(LParam)+OffsetY;

		//マウスをキャプチャ
		SetCapture(WindowHandle);
		break;
	case WM_LBUTTONUP:
		{
			//クリップ終了
			CaptureStarted=false;
			ShowWindow(LayerWindowHandle,SW_HIDE);
			
			//マウスのキャプチャを解除
			ReleaseCapture();
		
			//新しい座標をセット
			CaptureRect.right=LOWORD(LParam)+OffsetX;
			CaptureRect.bottom=HIWORD(LParam)+OffsetY;

			HDC Hdc,NewHdc;
			HBITMAP NewBitmap;
			Hdc=GetDC(nullptr);

			//画像のキャプチャ
			int Width,Height;
			Width=std::abs(CaptureRect.right-CaptureRect.left+1);
			Height=std::abs(CaptureRect.bottom-CaptureRect.top+1);

			if(!Width||!Height) {
				//画像になってないので何もしない
				ReleaseDC(nullptr,Hdc);
				DestroyWindow(WindowHandle);
				break;
			}

			// ビットマップバッファを作成
			NewBitmap=CreateCompatibleBitmap(Hdc,Width,Height);
			NewHdc=CreateCompatibleDC(Hdc);
			
			//関連づけ
			SelectObject(NewHdc,NewBitmap);

			//画像を取得
			BitBlt(NewHdc,0,0,Width,Height,Hdc,
				CaptureRect.left<CaptureRect.right?CaptureRect.left:CaptureRect.right,
				CaptureRect.top<CaptureRect.bottom?CaptureRect.top:CaptureRect.bottom,SRCCOPY);
			
			//ウィンドウを隠す
			ShowWindow(WindowHandle,SW_HIDE);
			
			//テンポラリファイル名を決定
			std::vector<wchar_t> TempDirectory(MAX_PATH,0),TempFile(MAX_PATH,0);
			GetTempPath(MAX_PATH,TempDirectory.data());
			GetTempFileName(TempDirectory.data(),TempPrefix,0,TempFile.data());
			
			if(SavePNG(TempFile.data(),NewBitmap)) UploadFile(TempFile.data(),ShowBrowser);
			else MessageBox(WindowHandle,L"一時ファイルの保存に失敗しました。",Title,MB_OK|MB_ICONERROR);

			//後始末
			DeleteFile(TempFile.data());
			DeleteDC(NewHdc);
			DeleteObject(NewBitmap);
			ReleaseDC(nullptr,Hdc);
			DestroyWindow(WindowHandle);
		}
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(WindowHandle,Message,WParam,LParam);
	}
	return 0;
}
コード例 #25
0
int
MultiFileCurlPlugin::UploadMultipleFiles( const std::string &input_filename ) {
    std::vector<std::pair<std::string, transfer_request>> requested_files;
    auto rval = BuildTransferRequests(input_filename, requested_files);
    if (rval) {return rval;}

    classad::ClassAdUnParser unparser;
    if ( _diagnostic ) { fprintf( stderr, "Uploading multiple files.\n" ); }

    for (const auto &file_pair : requested_files) {

        const auto &local_file_name = file_pair.second.local_file_name;
        const auto &url = file_pair.first;

        int retry_count = 0;
        int file_rval = -1;

        // Initialize the stats structure for this transfer.
        _this_file_stats.reset(new FileTransferStats());
        InitializeStats( url );
        _this_file_stats->TransferStartTime = time(NULL);
	_this_file_stats->TransferFileName = local_file_name;

        // Enter the loop that will attempt/retry the curl request
        for ( ;; ) {

            std::this_thread::sleep_for(std::chrono::seconds(retry_count++));

            // Everything prior to the first '+' is the credential name.
            std::string full_scheme = getURLType(url.c_str(), false);
            auto offset = full_scheme.find_last_of("+");
            auto cred = (offset == std::string::npos) ? "" : full_scheme.substr(0, offset);

            // The actual transfer should only be everything after the last '+'
            std::string full_url = url;
            if (offset != std::string::npos) {
                full_url = full_url.substr(offset + 1);
            }

            file_rval = UploadFile( full_url, local_file_name, cred );
            // If curl request is successful, break out of the loop
            if( file_rval == CURLE_OK ) {
                break;
            }
            // If we have not exceeded the maximum number of retries, and we encounter
            // a non-fatal error, stay in the loop and try again
            else if( retry_count <= MAX_RETRY_ATTEMPTS &&
                     ShouldRetryTransfer(file_rval) ) {
                continue;
            }
            // On fatal errors, break out of the loop
            else {
                break;
            }
        }

        _this_file_stats->TransferEndTime = time(NULL);

        // Regardless of success/failure, update the stats
        classad::ClassAd stats_ad;
        _this_file_stats->Publish( stats_ad );
        std::string stats_string;
        unparser.Unparse( stats_string, &stats_ad );
        _all_files_stats += stats_string;
        stats_ad.Clear();

        // Note that we attempt to upload all files, even if one fails!
        // The upload protocol demands that all attempted files have a corresponding ad.
        if ( ( file_rval != CURLE_OK ) && ( rval != -1 ) ) {
            rval = file_rval;
        }
    }
    return rval;
}
コード例 #26
0
ファイル: AppealDlg.cpp プロジェクト: lincoln56/robinerp
void CAppealDlg::OnOK()
{
    // TODO: 在此添加专用代码和/或调用基类
    CBcfFile fMsg(CBcfFile::GetAppPath()+"ClientMessage.bcf");

    POSITION pos = m_FileListCtrl.GetFirstSelectedItemPosition();
    if (pos == NULL)
    {
        //AFCMessageBox(fMsg.GetKeyVal("AppealDlg","SelectAppealGame","请选择要投诉的游戏"));
        DUIMessageBox(m_hWnd,MB_ICONINFORMATION|MB_OK,"系统提示",false,fMsg.GetKeyVal("AppealDlg","SelectAppealGame","请选择要投诉的游戏"));

        return;
    }
    int iItem = m_FileListCtrl.GetNextSelectedItem(pos);
    //m_FileListCtrl
    if (iItem < 0)
    {
        return;
    }
    CString strComent = "";
    GetDlgItem(IDC_EDIT_APPEAL_CONTENT)->GetWindowText(strComent);
    if (strComent == "")
    {
        //AFCMessageBox(fMsg.GetKeyVal("AppealDlg","AppealReason","请写明要投诉的游戏的原因!"));
        DUIMessageBox(m_hWnd,MB_ICONINFORMATION|MB_OK,"系统提示",false,fMsg.GetKeyVal("AppealDlg","AppealReason","请写明要投诉的游戏的原因!"));
        return;
    }
    list<RecordFileStruct>::iterator iter = m_fileList.begin();
    int iIndex = 0;
    for (; iter!=m_fileList.end();)
    {

        if (iIndex == iItem)
        {
            break;

        }
        else
        {
            iter++;
        }
        iIndex++;

    }

    RecordFileStruct record = *iter;
    int iRet = record.strWholeName.Find(record.strFileName);

    CString szPath = record.strWholeName.Mid(0,iRet);


    //CString szInfoFile = szPath + m_strUserName + "_";

    m_strInfoFileName = m_strUserName + "_";

    CString szFileName =  record.strFileName.Mid(0,record.strFileName.Find("."));
    m_strInfoFileName += szFileName;
    m_strInfoFileName += ".txt";

    m_strInfoFileWholeName = szPath + m_strInfoFileName;




    CStdioFile file;
    if (file.Open(m_strInfoFileWholeName,CFile::modeCreate | CFile::modeReadWrite) == false)
    {
        //AFCMessageBox(fMsg.GetKeyVal("AppealDlg","AppealError","投诉过程出错,请稍后再试!"));
        DUIMessageBox(m_hWnd,MB_ICONINFORMATION|MB_OK,"系统提示",false,fMsg.GetKeyVal("AppealDlg","AppealError","投诉过程出错,请稍后再试!"));
        //wushuqun 2009.5.22
        return;

    }
    file.SeekToBegin();
    file.WriteString(m_strUserName);
    file.WriteString("\n");
    file.WriteString(fMsg.GetKeyVal("AppealDlg","AppealContent","投诉内容:"));
    file.WriteString("\n");
    file.WriteString(strComent);
    file.WriteString("\n");

    GetDlgItem(IDC_EDIT_PHONE_NUM)->GetWindowText(strComent);
    if (strComent != "")
    {
        file.WriteString(fMsg.GetKeyVal("AppealDlg","Telephone","联系电话:"));
        file.WriteString(strComent);
        file.WriteString("\n");

    }
    GetDlgItem(IDC_EDIT_APPEAL_EMAIL)->GetWindowText(strComent);
    if (strComent != "")
    {
        file.WriteString(fMsg.GetKeyVal("AppealDlg","Email","Email:"));
        file.WriteString(strComent);
        file.WriteString("\n");
    }
    file.Close();





    CString strRemotName = m_strUserName + "_" +record.strFileName;


    CStringArray csa2;
    csa2.SetSize(0,6);
    csa2.Add(m_strFtpAddress);
    csa2.Add(m_strFtpUserName);
    csa2.Add(m_strFtpPwd);
    csa2.Add(strRemotName);
    csa2.Add(record.strWholeName);
    int  b=UploadFile(&csa2,this->m_hWnd,WM_USER+1);
    //wushuqun 2009.5.22
    if (b>0)
    {
        //AFCMessageBox(fMsg.GetKeyVal("AppealDlg","SendAppealError","投诉文件上传失败!"));
        DUIMessageBox(m_hWnd,MB_ICONINFORMATION|MB_OK,"系统提示",false,fMsg.GetKeyVal("AppealDlg","SendAppealError","投诉文件上传失败!"));

    }
    CDialog::OnOK();
}
コード例 #27
0
ファイル: AI1.cpp プロジェクト: gmoromisato/Hexarc
CString ExecuteUpgrade (CSocket &theSocket, const CString &sCmd)
	{
	int i;

	CString sRoot = fileGetPath(fileGetExecutableFilespec());

	//	Make a list of all executable files to upgrade

	TArray<CString> FileList;
	if (!fileGetFileList(sRoot, NULL_STR, CString("*.exe"), FFL_FLAG_RELATIVE_FILESPEC, &FileList))
		return CString("ERROR: Unable to obtain a list of executable files to upgrade.");

	//	Prepare a request upgrade command

	CStringBuffer Output;
	Output.Write("requestUpgrade (", 16);

	for (i = 0; i < FileList.GetCount(); i++)
		{
		CString sFilespec = fileAppend(sRoot, FileList[i]);

		//	Version

		SFileVersionInfo Info;
		if (!fileGetVersionInfo(sFilespec, &Info))
			{
			printf("ERROR: Unable to get file version: %s\n", (LPSTR)sFilespec);
			continue;
			}

		CIPInteger Version(Info.dwProductVersion);
		CString sVersion = Version.AsString();

		//	Checksum

		DWORD dwChecksum = fileChecksumAdler32(sFilespec);
		if (dwChecksum == 0)
			{
			printf("ERROR: Unable to get file checksum: %s\n", (LPSTR)sFilespec);
			continue;
			}

		CString sOutput = strPattern("{filename:\"%s\" version:%s checksum:%d} ", FileList[i], sVersion, dwChecksum);
		Output.Write(sOutput);
		}

	Output.Write(")", 1);

	//	Send the command

	CString sSend = CString::CreateFromHandoff(Output);
	CString sResult;
	CDatum dResult;
	ExecuteArcologyCommand(theSocket, sSend, &sResult, &dResult);
	if (strEquals(sResult, CString("ERROR")))
		return dResult.AsString();

	//	Show all the files to upgrade

	CDatum dUpgradeDesc = dResult.GetElement(0).GetElement(FIELD_UPGRADE_DESC);
	for (i = 0; i < dUpgradeDesc.GetCount(); i++)
		{
		CDatum dFileDesc = dUpgradeDesc.GetElement(i);

		printf("Upgrading %s\n", (LPSTR)dFileDesc.GetElement(FIELD_FILENAME).AsString());
		}

	//	Confirm

	CString sConfirm = GetInputLine(CString("\nAre you sure you want to upgrade the arcology? [y/n] : "));
	if (*sConfirm.GetParsePointer() != 'y' && *sConfirm.GetParsePointer() != 'Y')
		return NULL_STR;

	//	Upload the new files.

	for (i = 0; i < dUpgradeDesc.GetCount(); i++)
		{
		CDatum dFileDesc = dUpgradeDesc.GetElement(i);
		const CString &sFilename = dFileDesc.GetElement(FIELD_FILENAME);
		CString sFilespec = fileAppend(sRoot, sFilename);

		CString sResult = UploadFile(theSocket, CMD_UPLOAD_UPGRADE, sFilename, sFilespec);
		printf("%s\n", (LPSTR)sResult);
		}

	//	Complete the upgrade

	return ExecuteArcologyCommand(theSocket, CMD_COMPLETE_UPGRADE);
	}
コード例 #28
0
ファイル: client.c プロジェクト: admal/ChatAppUnix
/*
 * Start proper action for command
 */
int ProcessCommand(char* command, char *content) {
   // printf("Entered command: %s\n", command);
    if(strcmp(command, "!connect")==0)
    {
       // printf("%s %s\n",command, content);
        return ConnectToServer(content);
    }
    else if(g_serverFd < 0)
    {
        printf("You must be connected!\n");
        return -1;
    }
    else if(strcmp(command, "!bye")==0)
    {
      //  printf("%s\n",command);
        return Disconnect();
    }
    else if(strcmp(command, "!rooms")==0)
    {
        //printf("%s\n",command);
        return GetRooms(command);
    }
    else if(strcmp(command, "!open")==0)
    {
       // printf("%s\n",command);
        return OpenRoom(command, content);
    }
    else if(strcmp(command, "!close")==0)
    {
        //printf("%s\n",command);
        return CloseRoom(content);
    }
    else if(strcmp(command, "!enter")==0)
    {
        //printf("%s\n",command);
        return EnterRoom(command, content);
    }
    else if(strcmp(command, "!leave")==0)
    {
        //printf("%s\n",command);
        return LeaveRoom();
    }
    else if(strcmp(command, "!files")==0)
    {
        //printf("%s\n",command);
        return CheckFiles();
    }
    else if(strcmp(command, "!push")==0)
    {
    //    printf("%s\n",command);
        return UploadFile(content);
    }
    else if(strcmp(command, "!pull")==0)
    {
      //  printf("%s\n",command);
        return DownloadFile(content);
    }
    else if(strcmp(command, "!rm")==0)
    {
        //printf("%s\n",command);
        return 1;
    }
    else if(strcmp(command, "!send")==0)
    {
        //printf("%s\n", command);
        return SendMessageToRoom(content);
    }
    else
        return -1;
}
コード例 #29
0
void WebDavInventoryDataModel::UploadFiles(QStringList &filenames, QStringList &item_names, AbstractInventoryItem *parent_folder)
{
    ///\todo Use also the item names.
    for(uint i = 0; i < filenames.size(); ++i)
        UploadFile(filenames[i], parent_folder);
}