"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التعامل مع تحميلات الملفات في خادم Golang net/http باستخدام Mux؟

كيفية التعامل مع تحميلات الملفات في خادم Golang net/http باستخدام Mux؟

تم النشر بتاريخ 2024-12-11
تصفح:357

How to Handle File Uploads in a Golang net/http Server with Mux?

استلام الملفات المرفوعة في Golang باستخدام net/http و Mux

مقدمة
بناء خادم يتعامل يعد تحميل الملفات مهمة شائعة في تطوير الويب. في Golang، يمكنك الاستفادة من حزمة net/http لإدارة عمليات تحميل الملفات بكفاءة. فيما يلي دليل شامل حول كيفية تلقي الملفات التي تم تحميلها في خادم Golang net/http باستخدام جهاز التوجيه Mux الشهير.

تنفيذ تحميل الملفات
لتمكين وظيفة تحميل الملفات في الخادم الخاص بك، تحتاج إلى إجراء التغييرات التالية:

  1. قم بإنشاء نقطة نهاية تتعامل مع طلبات تحميل الملفات الواردة. يجب تعريف نقطة النهاية هذه في متغير جهاز التوجيه:

    جهاز التوجيه. المسار ("/ تحميل"). طرق ("POST"). HandlerFunc(UploadFile)
    router.
         Path("/upload").
         Methods("POST").
         HandlerFunc(UploadFile)
  2. في وظيفة UploadFile، تحتاج إلى تحليل بيانات النموذج متعدد الأجزاء. هذا هو المكان الذي سيكون فيه الملف الذي تم تحميله متاحًا:

    func UploadFile(w http.ResponseWriter, r *http.Request) { يخطئ := r.ParseMultipartForm(5 * 1024 * 1024) إذا أخطأت!= لا شيء { الذعر (خطأ) } // استرداد الملف من النموذج متعدد الأجزاء الملف، الرأس، الخطأ:= r.FormFile("fileupload") إذا أخطأت!= لا شيء { الذعر (خطأ) } تأجيل الملف.إغلاق() // افعل شيئًا ما مع الملف الذي تم تحميله، مثل تخزينه في قاعدة بيانات أو معالجته
    func UploadFile(w http.ResponseWriter, r *http.Request) {
     err := r.ParseMultipartForm(5 * 1024 * 1024)
     if err != nil {
         panic(err)
     }
    
     // Retrieve the file from the multipart form
     file, header, err := r.FormFile("fileupload")
     if err != nil {
         panic(err)
     }
     defer file.Close()
    
     // Do something with the uploaded file, such as storing it in a database or processing it
    }
  3. لمعالجة الملف، يمكنك قراءة محتوياته في المخزن المؤقت والتعامل معه حسب الحاجة. إليك مثال:

    var buf bytes.Buffer io.Copy(&buf, ملف) المحتويات := buf.String() fmt.Println(contents)
    router.
         Path("/upload").
         Methods("POST").
         HandlerFunc(UploadFile)
  4. إذا كنت ترسل الملف كبيانات نموذج متعددة الأجزاء باستخدام cURL، فتأكد من توفير المعلمات الصحيحة:
  5. curl http:// localhost:8080/upload -F "fileupload=[email protected]"

    router.
         Path("/upload").
         Methods("POST").
         HandlerFunc(UploadFile)
  6. باتباع هذه الخطوات، يمكنك استلام الملفات التي تم تحميلها بنجاح على خادم Golang net/http الخاص بك باستخدام Mux.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3