fix: preserve original file type on upload — never convert PNG to JPG
CI/CD / CI · dotnet build (push) Successful in 53s
CI/CD / Deploy · drsousan (push) Successful in 28s

Problem: cropper always called out.toBlob(..., 'image/jpeg') regardless
of the original file type, silently converting PNGs to JPGs.

Fix:
- openCropper() now stores file.type and file.name on the cropper object
- applyCrop() uses the stored mime type for toBlob() and the filename
- Quality param only passed for lossy formats (jpeg/webp), not for PNG/GIF
- uploadImage() accept list expanded: svg, ico allowed
- Server-side: .svg and .ico added to allowed extensions

Result: PNG stays PNG, WebP stays WebP, ICO stays ICO.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-02 18:06:38 +03:30
parent e79ccf7e8c
commit 5d6a4a630d
2 changed files with 11 additions and 4 deletions
+1 -1
View File
@@ -589,7 +589,7 @@ app.MapPost("/api/upload", async (HttpRequest request, IWebHostEnvironment env)
if (!request.HasFormContentType || !request.Form.Files.Any())
return Results.BadRequest("No file provided.");
var file = request.Form.Files[0];
var allowed = new[] { ".jpg", ".jpeg", ".png", ".webp", ".gif" };
var allowed = new[] { ".jpg", ".jpeg", ".png", ".webp", ".gif", ".svg", ".ico" };
var ext = Path.GetExtension(file.FileName).ToLowerInvariant();
if (!allowed.Contains(ext)) return Results.BadRequest("File type not allowed.");
var uploadsDir = Path.Combine(env.WebRootPath, "uploads");