コード例 #1
0
        public void OnBeginUploadFile(WebSocketUploadFile.UploadHeader header, bool isContinue)
        {
            var handler = (IUploadCompleted)_app.ApplicationServices.GetService(typeof(IUploadCompleted));

            if (handler != null)
            {
                handler.OnFileComing(header);
            }

            if (_dict.ContainsKey(header.TranId.Value) == false)
            {
                if (header.Position > 0)
                {
                    throw new Exception("服务器已经没有此文件的续传记录");
                }
                if (System.IO.Directory.Exists($"{AppDomain.CurrentDomain.BaseDirectory}Temp/WebSocketUploadFile") == false)
                {
                    System.IO.Directory.CreateDirectory($"{AppDomain.CurrentDomain.BaseDirectory}Temp/WebSocketUploadFile");
                }
                string filepath = $"{AppDomain.CurrentDomain.BaseDirectory}Temp/WebSocketUploadFile/{Guid.NewGuid().ToString("N")}";
                _dict[header.TranId.Value] = new FileOwner
                {
                    Stream = System.IO.File.Create(filepath)
                };
            }
        }
コード例 #2
0
        public void OnUploadCompleted(WebSocketUploadFile.UploadHeader header)
        {
            var    stream   = _dict[header.TranId.Value].Stream;
            string filepath = stream.Name;

            stream.Close();
            stream.Dispose();

            var handler = (IUploadCompleted)_app.ApplicationServices.GetService(typeof(IUploadCompleted));

            if (handler != null)
            {
                try
                {
                    header.FilePath = filepath;
                    handler.OnUploadCompleted(header);
                }
                catch
                {
                }
                finally
                {
                    _dict.Remove(header.TranId.Value);
                    try
                    {
                        System.IO.File.Delete(filepath);
                    }
                    catch
                    {
                    }
                }
            }
        }
コード例 #3
0
        public void OnReceivedFileContent(WebSocketUploadFile.UploadHeader header, byte[] data, int length, long filePosition)
        {
            var owner = _dict[header.TranId.Value];

            owner.LastWriteTime = DateTime.Now;
            owner.Stream.Seek(filePosition, System.IO.SeekOrigin.Begin);
            owner.Stream.Write(data, 0, length);
        }
コード例 #4
0
 public void OnError(WebSocketUploadFile.UploadHeader header)
 {
 }