private async Task SendRequestToSendFilePeace(Guid filePieceId, WebSocket selectedWebsocket) { var dto = new SendFileDto { RequestType = OutgoingRequestType.SEND_FILE, FilePieceIds = new List <Guid> { filePieceId } }; _logger.LogDebug($"Sending SEND FILE request of {filePieceId}"); await WriteStringToWebSocketAsync(JsonConvert.SerializeObject(dto), selectedWebsocket); }
public IActionResult AddEbook(SendFileDto dto) { if (!ModelState.IsValid) { return(BadRequest()); } var addStatus = bookService.AddFile(dto).Status; switch (addStatus) { case SendFileStatus.FileInvalid: return(BadRequest()); case SendFileStatus.Ok: return(NoContent()); default: return(StatusCode(500)); } }
// Wgrywa ebooka na serwer. public StatusResult <SendFileStatus> AddFile(SendFileDto dto) { var file = dto.File; var fileName = file.FileName; if (file.Length > 1024 * 1024 * 1024) // 1 GB { return(new StatusResult <SendFileStatus> { Status = SendFileStatus.FileInvalid }); } if (file.Length > 0) { var validExtensions = new [] { ".mobi", ".epub", ".pdf" }; var isValidFile = false; foreach (var extension in validExtensions) { if (file.FileName.EndsWith(extension)) { isValidFile = true; break; } } if (!isValidFile) { return(new StatusResult <SendFileStatus> { Status = SendFileStatus.FileInvalid }); } var directoryName = hostingEnvironment.ContentRootPath + "/private_static/files"; var isFilenameUnique = !System.IO.Directory.GetFiles(directoryName).Select(x => x.Split(Path.DirectorySeparatorChar).Last()).Any(x => x == fileName); if (!isFilenameUnique) { for (int i = 1; true; i++) { var newFilename = fileName.Split('.').First() + "_" + i + "." + fileName.Split('.').Last(); isFilenameUnique = !System.IO.Directory.GetFiles(directoryName).Select(x => x.Split(Path.DirectorySeparatorChar).Last()).Any(x => x == newFilename); if (isFilenameUnique) { fileName = newFilename; break; } } } var filePath = directoryName + "/" + fileName; using (var stream = new FileStream(filePath, FileMode.Create)) { file.CopyTo(stream); } } var fileEntity = new Models.Public.File { Name = "/private_static/files/" + fileName, UploadDate = DateTime.Now }; context.Files.Add(fileEntity); context.SaveChanges(); return(new StatusResult <SendFileStatus> { Status = SendFileStatus.Ok }); }
// Wgrywa na serwer zdjęcie. public StatusResult <SendFileStatus> AddPhoto(SendFileDto dto) { var file = dto.File; var fileName = file.FileName; if (file.Length > 1024 * 1024) // 1 MB { return(new StatusResult <SendFileStatus> { Status = SendFileStatus.FileInvalid }); } if (file.Length > 0) { var validExtensions = new [] { ".png", ".jpg" }; var isValidFile = false; foreach (var extension in validExtensions) { if (file.FileName.EndsWith(extension)) { isValidFile = true; break; } } if (!isValidFile) { return(new StatusResult <SendFileStatus> { Status = SendFileStatus.FileInvalid }); } var directoryName = hostingEnvironment.WebRootPath + "/media"; var isFilenameUnique = !System.IO.Directory.GetFiles(directoryName).Select(x => x.Split(Path.DirectorySeparatorChar).Last()).Any(x => x == fileName); if (!isFilenameUnique) { for (int i = 1; true; i++) { var newFilename = fileName.Split('.').First() + "_" + i + "." + fileName.Split('.').Last(); isFilenameUnique = !System.IO.Directory.GetFiles(directoryName).Select(x => x.Split(Path.DirectorySeparatorChar).Last()).Any(x => x == newFilename); if (isFilenameUnique) { fileName = newFilename; break; } } } var filePath = directoryName + "/" + fileName; using (var stream = new FileStream(filePath, FileMode.Create)) { file.CopyTo(stream); } } var photo = new Photo { Url = "/media/" + fileName, }; context.Photos.Add(photo); context.SaveChanges(); return(new StatusResult <SendFileStatus> { Status = SendFileStatus.Ok }); }