diff --git a/.gitignore b/.gitignore index 3d88ff4..e6a2ded 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .idea/ ImageBoardServerApp/bin/ ImageBoardServerApp/obj/ +ImageBoardServerApp/wwwroot/img/dynamic *.db *.db-shm *.db-wal diff --git a/ImageBoardServerApp/App.razor b/ImageBoardServerApp/App.razor index 6e090be..a72e02f 100644 --- a/ImageBoardServerApp/App.razor +++ b/ImageBoardServerApp/App.razor @@ -8,7 +8,7 @@

404

- noimageFound + noimageFound

Sorry, nothing found. Please go back to the main page. Or watch the tree and find the hidden Cat..

diff --git a/ImageBoardServerApp/Data/ImageData.cs b/ImageBoardServerApp/Data/ImageData.cs index 590ae88..bdd3eba 100644 --- a/ImageBoardServerApp/Data/ImageData.cs +++ b/ImageBoardServerApp/Data/ImageData.cs @@ -15,7 +15,7 @@ public class ImageData public string Board { get; set; } [Required] - public Byte[] Image { get; set; } + public string ImageLocation { get; set; } public PostData Post { get; set; } diff --git a/ImageBoardServerApp/ImageBoardServerApp.csproj b/ImageBoardServerApp/ImageBoardServerApp.csproj index 8d9c9c3..7866871 100644 --- a/ImageBoardServerApp/ImageBoardServerApp.csproj +++ b/ImageBoardServerApp/ImageBoardServerApp.csproj @@ -18,15 +18,18 @@ - - - - - - + + + + + + + + + diff --git a/ImageBoardServerApp/Shared/Components/Comment.razor b/ImageBoardServerApp/Shared/Components/Comment.razor index 8b54619..ec71b35 100644 --- a/ImageBoardServerApp/Shared/Components/Comment.razor +++ b/ImageBoardServerApp/Shared/Components/Comment.razor @@ -16,7 +16,7 @@
@if (image != null) { - No Image found + No Image found }
diff --git a/ImageBoardServerApp/Shared/Components/Forms/CommentForm.razor b/ImageBoardServerApp/Shared/Components/Forms/CommentForm.razor index e912a95..1733a25 100644 --- a/ImageBoardServerApp/Shared/Components/Forms/CommentForm.razor +++ b/ImageBoardServerApp/Shared/Components/Forms/CommentForm.razor @@ -2,6 +2,7 @@ @using ImageBoardServerApp.Data.Repository @inject NavigationManager navigationManager +@inject IWebHostEnvironment env
[ @@ -13,19 +14,7 @@
Comment on @post.Title in /@post.Board/ - -
-
-
- @if (image != null) - { - No Image - } -
- -
-
OnChange(args, "username")) Class="w-100"/> @@ -39,9 +28,9 @@
- + +
-
} @@ -86,18 +75,14 @@ Console.WriteLine($"Smth changed!: {value}"); } + private IBrowserFile selectedFile; + private async Task SingleUpload(InputFileChangeEventArgs e) { - MemoryStream ms = new MemoryStream(); - await e.File.OpenReadStream().CopyToAsync(ms); - var bytes = ms.ToArray(); - image = bytes; - Console.WriteLine("File has been selected!"); - ms.Close(); + selectedFile = e.GetMultipleFiles()[0]; + this.StateHasChanged(); } - private Byte[] image = null; - private async Task onPostClick() { var userToCreate = new UserData @@ -122,14 +107,24 @@ await UsersRepository.updateUserAsync(foundusr); } - bool hasImage = image != null; + bool hasImage = selectedFile != null; + CommentData commentToCreate; if (hasImage) { + Stream stream = selectedFile.OpenReadStream(maxAllowedSize: 512000 * 4); // max 2MB + var file = Path.GetRandomFileName() + "." + selectedFile.Name.Split(".")[selectedFile.Name.Split(".").Length - 1]; + var path = $"{env.WebRootPath}\\img\\dynamic\\comment\\{@post.Board}\\{file}"; + FileStream fs = File.Create(path); + await stream.CopyToAsync(fs); + stream.Close(); + fs.Close(); + + var imageToUpload = new ImageData { Board = post.Board, - Image = image + ImageLocation = $"\\img\\dynamic\\comment\\{post.Board}\\{file}" }; int imageID = await ImagesRepository.createImageAsync(imageToUpload); commentToCreate = new CommentData() diff --git a/ImageBoardServerApp/Shared/Components/Forms/FormInfo.razor b/ImageBoardServerApp/Shared/Components/Forms/FormInfo.razor index 4696826..0db3688 100644 --- a/ImageBoardServerApp/Shared/Components/Forms/FormInfo.razor +++ b/ImageBoardServerApp/Shared/Components/Forms/FormInfo.razor @@ -1,5 +1,5 @@ 
    -
  • The max. image size is 1MB.
  • +
  • The max. image size is 2MiB.
  • Supported file types are: jpeg, png & gif
  • Read the rules before posting
\ No newline at end of file diff --git a/ImageBoardServerApp/Shared/Components/Forms/PostForm.razor b/ImageBoardServerApp/Shared/Components/Forms/PostForm.razor index 261a567..3e42dd2 100644 --- a/ImageBoardServerApp/Shared/Components/Forms/PostForm.razor +++ b/ImageBoardServerApp/Shared/Components/Forms/PostForm.razor @@ -8,6 +8,7 @@ @using ImageBoardServerApp.Data.Repository @inject NavigationManager NavigationManager +@inject IWebHostEnvironment env
[ @@ -20,16 +21,6 @@ Post to /@board.Tag/ - @board.Topic
-
-
- @if (image != null) - { - No Image - } -
- -
-
OnChange(args, "username")) Class="w-100"/> @@ -48,6 +39,7 @@
+
@@ -95,18 +87,15 @@ Console.WriteLine($"Smth changed!: {value}"); } + private IBrowserFile selectedFile; + + private async Task SingleUpload(InputFileChangeEventArgs e) { - MemoryStream ms = new MemoryStream(); - await e.File.OpenReadStream().CopyToAsync(ms); - var bytes = ms.ToArray(); - image = bytes; - Console.WriteLine("File has been selected!"); - ms.Close(); + selectedFile = e.GetMultipleFiles()[0]; + this.StateHasChanged(); } - private Byte[] image; - private async Task onPostClick() { var userToCreate = new UserData @@ -132,11 +121,24 @@ } //TODO Add check if data is image - + + if (selectedFile == null) + { + return; + } + + Stream stream = selectedFile.OpenReadStream(maxAllowedSize: 512000 * 4); // max 2MB + var file = Path.GetRandomFileName() + "." + selectedFile.Name.Split(".")[selectedFile.Name.Split(".").Length - 1]; + var path = $"{env.WebRootPath}\\img\\dynamic\\op\\{board.Tag}\\{file}"; + FileStream fs = File.Create(path); + await stream.CopyToAsync(fs); + stream.Close(); + fs.Close(); + var imageToUpload = new ImageData { Board = board.Tag, - Image = image + ImageLocation = $"\\img\\dynamic\\op\\{board.Tag}\\{file}" }; int imageID = await ImagesRepository.createImageAsync(imageToUpload); var postToPost = new PostData diff --git a/ImageBoardServerApp/Shared/Components/Post.razor b/ImageBoardServerApp/Shared/Components/Post.razor index 767c087..c7dbf57 100644 --- a/ImageBoardServerApp/Shared/Components/Post.razor +++ b/ImageBoardServerApp/Shared/Components/Post.razor @@ -19,7 +19,7 @@
@if (@post.Image != null) { - No Image found + No Image found } else { diff --git a/ImageBoardServerApp/wwwroot/static/1.jpeg b/ImageBoardServerApp/wwwroot/img/static/err/1.jpeg similarity index 100% rename from ImageBoardServerApp/wwwroot/static/1.jpeg rename to ImageBoardServerApp/wwwroot/img/static/err/1.jpeg