Maison > Article > développement back-end > Gorm crée une erreur de téléchargement du fichier de données du formulaire
L'éditeur PHP Youzi vous présente aujourd'hui le problème de l'erreur de téléchargement dans le fichier de données du formulaire de création Gorm. Au cours du processus de développement, nous sommes souvent confrontés au besoin de télécharger des fichiers, et Gorm est une puissante bibliothèque ORM qui fournit des méthodes pratiques d'exploitation de base de données. Cependant, lors de l'utilisation de Gorm pour le téléchargement de fichiers de données de formulaire, certaines erreurs se produisent parfois. Cet article analysera ces erreurs pour vous et proposera les solutions correspondantes pour vous aider à mieux résoudre ce problème.
J'essaie de créer des enregistrements sur le serveur postgresql. La demande m'est envoyée sous forme de fichier de données en plusieurs parties. Après avoir téléchargé le fichier de mon côté, j'appelle gorm.create mais cela génère une erreur.
Lorsque je commente la partie de téléchargement du fichier, l'erreur disparaît, mais je dois télécharger le fichier.
Voici ma partie contrôleur :
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 }
Ma demande :
Erreur :
{ "error": "strconv.parseint: parsing \"products\": invalid syntax; strconv.parseint: parsing \"products\": invalid syntax", }
Voici ma structure :
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"` }
Vérifiez le type d'unité de la structure du fichier. strconv.ParseInt() Convertit une chaîne en valeur. Je pense que ModuleID, ModuleType ou les deux doivent être des chaînes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!