>  기사  >  백엔드 개발  >  Gorm이 양식 데이터 파일 업로드 오류를 생성합니다.

Gorm이 양식 데이터 파일 업로드 오류를 생성합니다.

PHPz
PHPz앞으로
2024-02-09 22:06:08890검색

Gorm 创建表单数据文件上传错误

PHP 편집자 Yuzi가 오늘 Gorm 생성 양식 데이터 파일 업로드 오류 문제를 소개합니다. 개발 과정에서 파일을 업로드해야 하는 경우가 종종 있는데, Gorm은 편리한 데이터베이스 운영 방법을 제공하는 강력한 ORM 라이브러리입니다. 하지만 폼 데이터 파일 업로드를 위해 Gorm을 사용하는 경우 일부 오류가 발생하는 경우가 있습니다. 이 문서에서는 이러한 오류를 분석하고 이 문제를 더 잘 처리하는 데 도움이 되는 해당 솔루션을 제공합니다.

질문 내용

postgresql 서버에서 레코드를 생성하려고 합니다. 요청은 멀티파트 형식의 파일 데이터로 나에게 전송됩니다. 내측에 파일을 업로드한 후 gorm.create를 호출했지만 오류가 발생합니다.

파일 업로드 부분을 주석 처리하면 오류가 사라지는데 파일을 업로드해야 합니다.

내 컨트롤러 부분은 다음과 같습니다.

으아아아

내 요청:

오류:

으아아아

내 구조는 다음과 같습니다.

func (pc productcontroller) create(c *gin.context) {

    var product migrations.product

    if err := c.bind(&product); err != nil {
        c.json(400, gin.h{"error": err.error(), "message": "İşlem başarısız. lütfen tekrar deneyiniz veya sistem yöneticinize başvurun. hata kodu: pd-crt-01"})
        return
    }

    if product.name == "" {
        c.json(400, gin.h{"error": "name is required", "message": "İşlem başarısız. lütfen ad alanını boş bırakmayınız. hata kodu: pd-crt-02"})
        return
    }

    if product.price == 0 {
        c.json(400, gin.h{"error": "price is required", "message": "İşlem başarısız. lütfen fiş değeri alanını boş bırakmayınız. hata kodu: pd-crt-03"})
        return
    }
    if product.id != 0 {
        c.json(400, gin.h{"error": "remove id field", "message": "lütfen tekrar deneyiniz veya sistem yöneticinize başvurun. hata kodu: pd-crt-id-01"})
        return
    }

    file, err := c.formfile("image")
    if err != nil {
        c.json(400, gin.h{"error": err.error(), "message": "lütfen resim ekleyiniz. hata kodu: pd-crt-img-01"})
    }
    filename := time.now().format("20060102150405") + "-" + strings.split(file.filename, ".")[0] + "." + strings.split(file.filename, ".")[1]
    dst := fmt.sprintf("./public/images/%s", filename)
    err = c.saveuploadedfile(file, dst)
    if err != nil {
        c.json(400, gin.h{"error": err.error(), "message": "lütfen tekrar deneyiniz veya sistem yöneticinize başvurun. hata kodu: pd-crt-img-02"})
        return
    }

    product.image = &migrations.file{
        path:      filename,
        extension: strings.split(file.filename, ".")[1],
    }
    log.println(product)
    err = db.conn.create(&product).error
    if err != nil {
        c.json(400, gin.h{"error": err.error(), "message": "İşlem başarısız. lütfen tekrar deneyiniz veya sistem yöneticinize başvurun. hata kodu: pd-crt-04"})
        return
    }

    c.json(http.statuscreated, gin.h{"message": "Ürün başarıyla eklendi.", "data": product})
    return
}

해결 방법

파일 구조의 단위 유형을 확인하세요. strconv.ParseInt() 문자열을 값으로 변환합니다. 내 생각에는 ModuleID, ModuleType 또는 둘 다 문자열이어야 합니다.

위 내용은 Gorm이 양식 데이터 파일 업로드 오류를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제