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
-
+
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 @@
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)
- {
-
- }
-
-
-
-
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)
- {
-
- }
-
-
-
-
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)
{
-
+
}
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