Exemple #1
0
        public override Task <uploadFileResponse> SaveFile(uploadFileRequest request, ServerCallContext context)
        {
            Stream imageStream = new MemoryStream(request.ChunkData.ToByteArray());

            string filePath = $"D:\\aa.jpg";

            using (FileStream fs = new FileStream(filePath, FileMode.Create))
            {
                fs.Write(request.ChunkData.ToByteArray());
            }
            return(Task.FromResult(new uploadFileResponse()
            {
                FileId = filePath
            }));
        }
Exemple #2
0
        static async Task Main(string[] args)
        {
            //var channel = GrpcChannel.ForAddress("https://*****:*****@"C:\Users\e.hazar\Pictures\mobilv3.png";
            string fileName = @"D:\data\aa.png";

            #region Save
            // byte[] bytes = File.ReadAllBytes(fileName);


            // ByteString bs = ByteString.CopyFrom(bytes);
            // uploadFileRequest uploadData = new uploadFileRequest()
            // {
            //     ChunkData = bs,
            //     Info = new ImageInfo() { FileName = fileName, ImageType = ".jpg" }
            // };
            // uploadData.ChunkData = bs;

            //await uploadClient.SaveFileAsync(uploadData);
            #endregion

            #region UploadFile
            //using var uploadFile = uploadClient.UploadFile();
            //using (FileStream fs = File.OpenRead(fileName))
            //{

            //    byte[] b = new byte[1024];
            //    UTF8Encoding temp = new UTF8Encoding(true);


            //    while (fs.Read(b, 0, b.Length) > 0)
            //    {



            //        uploadFileRequest uploadFileReq = new uploadFileRequest()
            //        {
            //            Info = new ImageInfo() { FileName = fileName, ImageType = ".jpg" }
            //        };

            //        uploadFileReq.ChunkData = ByteString.CopyFrom(b);

            //         await uploadFile.RequestStream.WriteAsync(uploadFileReq);
            //        Console.WriteLine(temp.GetString(b));
            //    }
            //}
            #endregion

            #region uploadFileStream
            using var uploadFileStream = uploadClient.UploadFileStream();

            using (FileStream fs = File.OpenRead(fileName))
            {
                byte[]       b    = new byte[1024];
                UTF8Encoding temp = new UTF8Encoding(true);

                int uploadedBytes = 0;
                while (fs.Read(b, 0, b.Length) > 0)
                {
                    Console.SetCursorPosition(10, 10);

                    var responseTask = Task.Run(async() =>
                    {
                        while (await uploadFileStream.ResponseStream.MoveNext(CancellationToken.None))
                        {
                            uploadedBytes += (int)uploadFileStream.ResponseStream.Current.FileSize;
                            // Console.Clear();
                            Console.WriteLine($"{fileName} - Upload File bytes {fs.Length}/{uploadedBytes}");
                        }
                    });



                    uploadFileRequest uploadFileReq = new uploadFileRequest()
                    {
                        Info = new ImageInfo()
                        {
                            FileName = fileName, ImageType = ".png"
                        }
                    };

                    uploadFileReq.ChunkData = ByteString.CopyFrom(b);

                    await uploadFileStream.RequestStream.WriteAsync(uploadFileReq);
                }
            }
            #endregion

            Console.ReadLine();
        }