public void AcceptReceive(RequestSendFileEventArgs e) { TraFransfersFileStart traFransfersFileStart = e.TraFransfersFileStart; IPEndPoint remoteIP = e.RemoteIP; ResponeTraFransfersFile responeTraFransfersFile; if (e.Cancel) { responeTraFransfersFile = new ResponeTraFransfersFile( traFransfersFileStart.MD5, 0, -1); Send((int)Command.ResponeSendFile, responeTraFransfersFile, remoteIP); } else { ReceiveFileManager receiveFileManager; if (!ReceiveFileManagerList.TryGetValue( traFransfersFileStart.MD5, out receiveFileManager)) { receiveFileManager = new ReceiveFileManager( traFransfersFileStart.MD5, e.Path, traFransfersFileStart.FileName, traFransfersFileStart.PartCount, traFransfersFileStart.PartSize, traFransfersFileStart.Length, remoteIP); receiveFileManager.ReceiveFileComplete += new FileReceiveCompleteEventHandler(ReceiveFileManagerReceiveFileComplete); receiveFileManager.ReceiveFileTimeout +=new EventHandler(ReceiveFileManagerReceiveFileTimeout); ReceiveFileManagerList.Add(traFransfersFileStart.MD5,receiveFileManager); receiveFileManager.Start(); } responeTraFransfersFile = new ResponeTraFransfersFile(traFransfersFileStart.MD5, 0, 0); Send((int)Command.ResponeSendFile, responeTraFransfersFile, remoteIP); } }
private void RequestSendFile(object sender, RequestSendFileEventArgs e) { TraFransfersFileStart traFransfersFileStart = e.TraFransfersFileStart; BeginInvoke(new MethodInvoker(delegate() { FileTransfersItem item = fileTansfersContainer2.AddItem( traFransfersFileStart.MD5, "接收文件", traFransfersFileStart.FileName, traFransfersFileStart.Image, traFransfersFileStart.Length, FileTransfersItemStyle.ReadyReceive); item.BaseColor = _baseColor; item.BorderColor = _borderColor; item.ProgressBarBarColor = _progressBarBarColor; item.ProgressBarBorderColor = _progressBarBorderColor; item.ProgressBarTextColor = _progressBarTextColor; item.Tag = e; item.SaveButtonClick += new EventHandler(ItemSaveButtonClick); item.SaveToButtonClick += new EventHandler(ItemSaveToButtonClick); item.RefuseButtonClick += new EventHandler(ItemRefuseButtonClick); })); AppendLog(string.Format("请求发送文件 {0}。",traFransfersFileStart.FileName), true); }
private void RequestSendFile(object sender, RequestSendFileEventArgs e) { TraFransfersFileStart traFransfersFileStart = e.TraFransfersFileStart; BeginInvoke(new MethodInvoker(delegate() { bool isExist = false; foreach (FileTransfersItem citem in fileTansfersContainer.Controls) { if(citem.Style==FileTransfersItemStyle.ReadyReceive) { if (citem.Name == traFransfersFileStart.MD5) { isExist = true; } } } if (isExist) return; FileTransfersItem item = fileTansfersContainer.AddItem( traFransfersFileStart.MD5, "接收文件", traFransfersFileStart.FileName, traFransfersFileStart.Image, traFransfersFileStart.Length, FileTransfersItemStyle.ReadyReceive); item.BaseColor = _baseColor; item.BorderColor = _borderColor; item.ProgressBarBarColor = _progressBarBarColor; item.ProgressBarBorderColor = _progressBarBorderColor; item.ProgressBarTextColor = _progressBarTextColor; item.Tag = e; item.SaveButtonClick += new EventHandler(ItemSaveButtonClick); item.SaveToButtonClick += new EventHandler(ItemSaveToButtonClick); item.RefuseButtonClick += new EventHandler(ItemRefuseButtonClick); this.Invoke( new RequestSendFilePanel(RequestSendFilePanelMethod)); this.AppendSystemRtf(string.Format("请求接收文件 {0}。", traFransfersFileStart.FileName)); })); }
/// <summary> /// 接收离线文件 /// </summary> /// <param name="msg"></param> private void GetFtpFileAMethod(XMPP.protocol.client.Message msg) { FTPClient ftpClient = new FTPClient(Util.ServerAddress, Util.ftpPath, Util.ftpUser, Util.ftpPswd, Util.ftpPort); ftpClient.FtpPath = msg.GetTag("Path"); ftpClient.GetFileErrorEvent += new FTPClient.GetFileErrorDelegate(ftpClient_GetFileErrorEvent); ftpClient.GetFileProgressEvent += new FTPClient.GetFileProgressDelegate(ftpClient_GetFileProgressEvent); ftpClient.GetFileSucceedEvent += new FTPClient.GetFileSucceedDelegate(ftpClient_GetFileSucceedEvent); ftpClient.ChDir("/" + ftpClient.FtpPath + "/"); long fileSize = long.Parse(msg.GetTag("Length")); FileTransfersItem item = fileTansfersContainer.AddItem( msg.GetTag("MD5"), "接收文件", msg.GetTag("FileName"), Properties.Resources.ReceiveIco, fileSize, FileTransfersItemStyle.FtpGet); item.BaseColor = _baseColor; item.BorderColor = _borderColor; item.ProgressBarBarColor = _progressBarBarColor; item.ProgressBarBorderColor = _progressBarBorderColor; item.ProgressBarTextColor = _progressBarTextColor; RequestSendFileEventArgs requestSendFileEventArgs = new RequestSendFileEventArgs(); requestSendFileEventArgs.ftpClient = ftpClient; ftpClient.fileTransfersItem = item; item.Tag = requestSendFileEventArgs; item.SaveButtonClick += new EventHandler(ItemSaveButtonClick); item.SaveToButtonClick += new EventHandler(ItemSaveToButtonClick); item.RefuseButtonClick += new EventHandler(ItemRefuseButtonClick); Util.ReceiveFileManagerList.Add(msg.GetTag("MD5"), requestSendFileEventArgs); this.Invoke(new RequestSendFilePanel(RequestSendFilePanelMethod)); this.AppendSystemRtf(string.Format("请求接收离线文件 {0}。", msg.GetTag("FileName"))); }
protected virtual void OnRequestSendFile(RequestSendFileEventArgs e) { if (RequestSendFile != null) { RequestSendFile(this, e); } }