예제 #1
0
        public async Task <ActionResult> DeleteFile(string fileName)
        {
            var fileRepository = new FileStorageRepository(GetStorageSettings());
            await fileRepository.DeleteAsync(fileName);

            return(RedirectToAction("Index"));
        }
예제 #2
0
        public async Task <ActionResult> Index()
        {
            var fileRepository = new FileStorageRepository(GetStorageSettings());

            var fileList = new List <FileListResult>();

            foreach (var cloudFile in await fileRepository.ListFilesAsync(null, true))
            {
                fileList.Add(new FileListResult {
                    Name = cloudFile.Name, IsDirectory = cloudFile.IsDirectory
                });
            }

            return(View(fileList));
        }
예제 #3
0
        public async Task <ActionResult> UploadFile()
        {
            var httpRequest = HttpContext.Request;

            if (httpRequest.Files.Count > 0)
            {
                const int fileIndex      = 0;
                var       fileRepository = new FileStorageRepository(GetStorageSettings());

                var fileName = FileUploadHelper.GetFileName(httpRequest, fileIndex);
                using (Stream fileStream = FileUploadHelper.GetInputStream(httpRequest, fileIndex))
                    await fileRepository.UploadAsync(fileStream, fileName);

                return(RedirectToAction("Index"));
            }

            throw new ArgumentException("File count is zero.");
        }
예제 #4
0
        private static void SaveBook(BookInfo book)
        {
            //var storagePath = @"D:\_Lib.rus.ec - Официальная\Lib.rus.ec";
            //var storagePath = @"E:\Disk_D\_Lib.rus.ec - Официальная\Lib.rus.ec";
            var storagePath = ConfigurationManager.AppSettings["storagePath"];

            string fileName = book.FileName + book.Ext;

            var storageRepo = new FileStorageRepository(storagePath);

            using var stream = storageRepo.GetFile(book.Folder, fileName);
            if (stream != null)
            {
                string path = Path.Combine(@"D:\", $"{book.Folder}_{fileName}");
                using var fileStream = File.Create(path);
                stream.CopyTo(fileStream);
                Console.WriteLine($"The book has been saved to {path}.");
            }
        }
예제 #5
0
        public async Task <ActionResult> DownloadFile(string fileName)
        {
            var fileRepository = new FileStorageRepository(GetStorageSettings());

            Stream myFileStream = await fileRepository.DownloadAsync(fileName);

            if (myFileStream == null)
            {
                throw new FileNotFoundException($"Could not find the file named: {fileName}");
            }


            // Determine the Mime Type
            string mimeType = MimeMapping.GetMimeMapping(fileName) ?? "application/octet-stream";

            // The stream will be destroyed by FileStreamResult.WriteFile deep within HttpResponseBase according to this post
            // https://stackoverflow.com/questions/3084366/how-do-i-dispose-my-filestream-when-implementing-a-file-download-in-asp-net
            return(File(myFileStream, mimeType, fileName));
        }
예제 #6
0
 public FileGameStateRepository(FileStorageRepository file)
 {
     _file = file;
 }
예제 #7
0
 public FileUserRepository(FileStorageRepository file)
 {
     _file = file;
 }