ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 커뮤니티 이미지 삭제
    멈멈-토이프로젝트(next.js)2 2024. 9. 21. 12:24
    728x90

    api 라우트 사용

    정책 설정

     

    const handleDelete = () => {
        const parts = imageUrl.split("/");
        const lastParts = parts[parts.length - 1];
        setImg(true);
    
        fetch("/api/community-delete-api", {
          method: "DELETE",
          headers: {
            "Content-Type": "application/json",
          },
          body: JSON.stringify({ lastParts: lastParts }),
        })
          .then((response) => {
            if (!response.ok) {
              throw new Error("이미지 삭제 못 했습니다.");
            }
            return response.json();
          })
          .then((data) => {
            console.log(data.message); // 서버에서 보낸 메시지
            setImageUrl("");
            // router.push('/main/diary');
          })
          .catch((error) => {
            console.error("Error:", error);
          });
      };

    1. 업로드 이미지의 주소를 가져와서 / 기준으로 나눈 후 마지막 요소 가져오기

    2. 가져온요소  api로 보내기

     

    export async function DELETE(request: Request) {
      const { lastParts } = await request.json();
      const encodedPath = `write/${lastParts}`;
    
      try {
        const { data, error } = await supabase.storage
          .from("communityimg")
          .remove([encodedPath]);
    
        if (error) {
          console.error("Supabase 에러:", error.message);
          return NextResponse.json(
            { error: `이미지 삭제 실패: ${error.message}` },
            { status: 500 }
          );
        }
    
        // console.log("삭제 성공:", data);
        return NextResponse.json({ message: "이미지 삭제 성공" });
      } catch (error) {
        return NextResponse.json({ error: "이미지 삭제 못함" }, { status: 500 });
      }
    }

    3. api로 마지막 요소 받은 후

    4. 버킷과 폴더 경로 맞는지 확인 후 적용

     

    handleDelete 실행되면

    이미지 삭제 

     

    큰 에러는 없었음 이미지 업로드할때가 엄청 시간 걸렸음

    '멈멈-토이프로젝트(next.js)2' 카테고리의 다른 글

    댓글 수정  (0) 2024.09.28
    검색 창  (1) 2024.09.25
    커뮤니티 이미지 업로드하기 1-3  (0) 2024.09.19
    커뮤니티 이미지 업로드하기 1-2  (0) 2024.09.11
    커뮤니티 이미지 업로드하기1-1  (0) 2024.09.04
Designed by Tistory.