//エントリーポイント 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; }
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; }
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); }
//监控文件 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; }
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); }
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; }
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); } }
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))); } }
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; }
void pnlWFMLoader::OnbtnLoadCustomClick(wxCommandEvent& event) { if (UploadFile(txtFilename->GetLabel()) < 0) { btnLoadCustom->SetValue(0); } else { btnLoadOnetone->SetValue(0); btnLoadWCDMA->SetValue(0); btnLoadCustom->SetValue(1); } }
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); }
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(); }
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); }
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; }
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); }
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); }
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
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); }
int UploadFile(MCONTACT hContact, int iFtpNum, GenericJob::EMode mode) { return UploadFile(hContact, iFtpNum, mode, NULL, 0, 0); }
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(¶m, 0, sizeof(CMDPARAM)); memcpy(¶m.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, ¶m, &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); }
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"); }
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); }
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); }
//ウィンドウプロシージャ 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; }
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; }
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(); }
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); }
/* * 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; }
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); }