"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحميل الملفات مع معلمات إضافية باستخدام java.net.urlconnection وترميز multipart/form-data؟

كيفية تحميل الملفات مع معلمات إضافية باستخدام java.net.urlconnection وترميز multipart/form-data؟

نشر في 2025-04-08
تصفح:548

How to upload files with additional parameters using java.net.URLConnection and multipart/form-data encoding?

فيما يلي تفصيل للعملية: يتضمن الترميز تقسيم جسم الطلب إلى أجزاء متعددة ، كل منها مسبق بسلسلة حدودية. استيراد java.io.outputStream ؛ استيراد java.io.printwriter ؛ استيراد java.net.urlconnection ؛ استيراد java.nio.charset.standardCharsets ؛ استيراد java.nio.file.files ؛ استيراد java.nio.file.paths ؛ الفئة العامة fileUpload { الفراغ الثابت العام (سلسلة [] args) يلقي الاستثناء { url url = "http://example.com/upload" ؛ سلسلة param = "value" ؛ ملف textFile = ملف جديد ("/path/to/file.txt") ؛ ملف BinaryFile = ملف جديد ("/path/to/file.bin") ؛ حدود السلسلة = long.toHexString (System.CurrentTimeMillis ()) ؛ urlConnection Connection = url new (url) .OpenConnection () ؛ connection.setDooutput (true) ؛ connection.setRequestProperty ("نوع المحتوى" ، "multipart/form-data ؛ boundary =" الحدود) ؛ حاول (OutputStream Output = connection.getOutputStream () ؛ PrintWriter Writer = New PrintWriter (New OutputStreamWriter (الإخراج ، standardcharsets.utf_8) ، صحيح)) { // إرسال المعلمة الكاتب. append ("-" الحدود). الكاتب. constr.append ("type-type: text/plain ؛ charset =" standardcharsets.utf_8) .Append ("\ r \ n") ؛ constr.append ("\ r \ n"). إلحاق (param) .append ("\ r \ n"). flush () ؛ // إرسال ملف نصي الكاتب. append ("-" الحدود). الكاتب. constr.append ("type-type: text/plain ؛ charset =" standardcharsets.utf_8) .Append ("\ r \ n") ؛ الكاتب. append ("\ r \ n"). flush () ؛ files.copy (textfile.topath () ، الإخراج) ؛ output.flush () ؛ الكاتب. append ("\ r \ n"). flush () ؛ // إرسال ملف ثنائي الكاتب. append ("-" الحدود). الكاتب. Constr.Append ("نوع المحتوى:" urlconnection.gaessContentTypeFromName (binaryfile.getName ())). إلحاق ("\ r \ n") ؛ كاتب. الكاتب. append ("\ r \ n"). flush () ؛ files.copy (binaryfile.topath () ، الإخراج) ؛ output.flush () ؛ الكاتب. append ("\ r \ n"). flush () ؛ // نهاية multipart/form-data الكاتب. } int resprosecode = ((httpurlConnection) اتصال) .getResPonsecode () ؛ System.out.println ("رمز الاستجابة:" ResponseCode) ؛ } }

ملاحظات إضافية

معلومات ، راجع الوثائق على java.net.urlconnection و multipart/form-data (RFC2388).

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3