Heim > Artikel > Backend-Entwicklung > Gorm erzeugt einen Fehler beim Hochladen der Formulardatendatei
Der PHP-Editor Yuzi stellt Ihnen heute das Problem des Hochladens von Fehlern in der Gorm-Erstellungsformulardatendatei vor. Während des Entwicklungsprozesses müssen wir häufig Dateien hochladen. Gorm ist eine leistungsstarke ORM-Bibliothek, die praktische Methoden für den Datenbankbetrieb bietet. Bei der Verwendung von Gorm zum Hochladen von Formulardatendateien treten jedoch manchmal Fehler auf. In diesem Artikel werden diese Fehler für Sie analysiert und entsprechende Lösungen bereitgestellt, die Ihnen helfen, dieses Problem besser zu lösen.
Ich versuche, Datensätze auf dem Postgresql-Server zu erstellen. Die Anfrage wird mir als Dateidaten im Multipart-Format zugesandt. Nachdem ich die Datei auf meine Seite hochgeladen habe, rufe ich gorm.create auf, aber es wird ein Fehler ausgegeben.
Wenn ich den Datei-Upload-Teil auskommentiere, verschwindet der Fehler, aber ich muss die Datei hochladen.
Das ist mein Controller-Teil:
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 }
Mein Anliegen:
Fehler:
{ "error": "strconv.parseint: parsing \"products\": invalid syntax; strconv.parseint: parsing \"products\": invalid syntax", }
Das ist meine Struktur:
type Order struct { ID uint `gorm:"primarykey" json:"id"` UserID int `gorm:"index" json:"user_id"` RoomNo int `gorm:"comment:oda_no" json:"room_no"` IsDone bool `gorm:"default:false" json:"is_done"` StatusCode int `gorm:"default:0" json:"status_code"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` DeletedAt time.Time `gorm:"index" json:"deleted_at"` Products []*Product `gorm:"many2many:orders_products" json:"products,omitempty"` } type Product struct { ID uint `gorm:"primarykey" json:"id" form:"id"` Name string `gorm:"type:varchar(255)" json:"name" form:"name"` Price float64 `gorm:"type:decimal(10,2)" json:"price" form:"price"` IsActive bool `gorm:"default:true" json:"is_active" form:"isActive"` Image File `gorm:"polymorphic:Module" json:"image,omitempty"` CreatedAt time.Time `json:"created_at" form:"createdAt"` UpdatedAt time.Time `json:"updated_at" form:"updatedAt"` DeletedAt time.Time `gorm:"index" json:"deleted_at"` } type OrdersProduct struct { OrderID int `gorm:"index" json:"order_id"` ProductID int `gorm:"index" json:"product_id"` Count int `gorm:"default:0" json:"count"` } type File struct { ID uint `gorm:"primarykey" json:"id"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` DeletedAt time.Time `gorm:"index" json:"deleted_at"` Path string `gorm:"type:varchar(255)" json:"path"` Extension string `gorm:"type:varchar(255)" json:"extension"` ModuleID int `gorm:"type:integer" json:"module_id"` ModuleType int `gorm:"type:integer" json:"module_type"` }
Überprüfen Sie den Einheitentyp der Dateistruktur. strconv.ParseInt() Konvertiert einen String in einen Wert. Ich denke, ModuleID, ModuleType oder beide müssen Zeichenfolgen sein.
Das obige ist der detaillierte Inhalt vonGorm erzeugt einen Fehler beim Hochladen der Formulardatendatei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!