Next.js display SVG with dangerouslyAllowSVG disabled?
Unanswered
American black bear posted this in #help-forum
American black bearOP
I am using minio storage for storing images on my VPS. When user uploads the image it is converted to 
This works if the user uploads image types like
I have a few questions regarding this issue:
- Am I not correctly converting uploaded images?
- Is it bad to convert file formats on serverless environment?
- Is there an easier way of doing all this that I am overlooking?
.png format on my API POST route using sharp like code below.import sharp from "sharp"
async function convertFileToPng(
  file: File | null | undefined
): Promise<Blob | null> {
  if (!file) return null
  // Read the file contents
  const buffer = await file.arrayBuffer()
  // Convert the file to a PNG image
  const pngBuffer = await sharp(buffer)
    .resize(1920, 1080, { fit: "inside", withoutEnlargement: true })
    .png()
    .toBuffer()
  // Create a Blob from the PNG buffer
  const pngBlob = new Blob([pngBuffer], { type: "image/png" })
  return pngBlob
}
export async function POST(req) {
  const formData = await req.formData()
  const file = formData.get("file")
  const pngFile = await convertFileToPng(file)
  await uploadImage({ bucketName: "images", file: pngFile })
  // ...return
}// trying to display the image like this
import Image from "next/image"
export default MyImageComponent() {
  return <Image 
           src={"http://127.0.0.1:9000/images/image-hash.png"}
           width={500} 
           height={500}
           alt="image preview"
          />
}This works if the user uploads image types like
png, jpeg, etc. But if a user uploads .svg, that image isn't rendered properly and I receive the following error in console:The requested resource "http://127.0.0.1:9000/images/image-hash.png" has type "image/svg+xml" but dangerouslyAllowSVG is disabled.I have a few questions regarding this issue:
- Am I not correctly converting uploaded images?
- Is it bad to convert file formats on serverless environment?
- Is there an easier way of doing all this that I am overlooking?
2 Replies
American black bearOP
bump
American black bearOP
bump