يجب أن يتم إخبار Sipatcherservlet بشكل صريح كيفية التعامل مع Multiredrequest.
يوفر SpringMVC الطرق التالية لتحميل الملفات
تكوين xxx-servlet.xml وأضف الكود التالي:
نسخة الكود كما يلي:
<bean id = "multipartresolver"
class = "org.springframework.web.multipart.commons.CommonsMultiPartresolver">
<!-اضبط الحد الأقصى لحجم الملفات التي تم تحميلها على 1 ميجابايت->
<الاسم الخاصية = "maxuploadsize">
<value> 1048576 </value>
</property>
</bean>
نسخة الكود كما يلي:
<bean id = "multipartresolver"
class = "org.springframework.web.multipart.commons.CommonsMultiPartresolver">
<!-اضبط الحد الأقصى لحجم الملفات التي تم تحميلها على 1 ميجابايت->
<الاسم الخاصية = "maxuploadsize">
<value> 1048576 </value>
</property>
</bean>
لاحظ أن حجم الملف هنا هو في الواقع فقط حتى حجم الملف الإجمالي
إذا قمت بتكوين حجم الملف ، فأنت تعتقد أنك بحاجة إلى تكوين التحكم في معلومات الاستثناء
لذلك ، من الضروري تكوين عرض غير طبيعي
نسخة الكود كما يلي:
<!-عندما يتجاوز SPRINGMVC حد تحميل ملف ، فإنه يرمي org.springframework.web.multipart.maxuploadsizeExceedEdException->
<!-تم طرح هذا الاستثناء بواسطة springMVC عند التحقق من معلومات الملف المحمّلة ، ولم يدخل طريقة وحدة التحكم في هذا الوقت->
<bean id = "inspeciedResolver"
>
<اسم خاصية = "استثناءات">
<bors>
<!-عند مواجهة استثناء maxuploadsizeexceededException ، ستقفز تلقائيًا إلى /web-inf/jsp/error_fileupload.jsp صفحة->
<دعامة
key = "org.springframework.web.multipart.maxuploadsizeExceedEdException"> error_fileupload </prop>
</rops>
</property>
</bean>
نسخة الكود كما يلي:
<!-عندما يتجاوز SPRINGMVC حد تحميل ملف ، فإنه يرمي org.springframework.web.multipart.maxuploadsizeExceedEdException->
<!-تم طرح هذا الاستثناء بواسطة springMVC عند التحقق من معلومات الملف المحمّلة ، ولم يدخل طريقة وحدة التحكم في هذا الوقت->
<bean id = "inspeciedResolver"
>
<اسم خاصية = "استثناءات">
<bors>
<!-عند مواجهة استثناء maxuploadsizeexceededException ، ستقفز تلقائيًا إلى /web-inf/jsp/error_fileupload.jsp صفحة->
<الدعامة
key = "org.springframework.web.multipart.maxuploadsizeExceedEdException"> error_fileupload </prop>
</rops>
</property>
</bean>
أو كن كسولًا ولا تحدد الحجم ، فإن القيمة الافتراضية النهائية غير محدودة. إذا كان عليك التحكم في معلومات الإرجاع ، فيمكنك التفكير في إرجاع بيانات التنسيق المحددة في معالجة الاستثناء ، مثل JSON
بعد صفحة التكوين ، كما هو الحال دائمًا ، أضفه إلى النموذج: enctype = "multipart/form-data"
ثم هناك إجراءات يجب معالجتها.
الطريقة الأولى:
نسخة الكود كما يلي:
تسجيل الدخول إلى السلسلة العامة (ملف requestparam multipartfile ، نموذج النموذج) {
……………………
}
نسخة الكود كما يلي:
تسجيل الدخول إلى السلسلة العامة (ملف requestparam multipartfile ، نموذج النموذج) {
……………………
}
يجب أن يكون اسم الملف متسقًا مع قيمة السمة في <file = file>.
نسخة الكود كما يلي:
تسجيل الدخول إلى السلسلة العامة (valid userInfo userInfo ، bindingResult result ، requestparam multipartfile [] files ، model model) {
……………………
}
نسخة الكود كما يلي:
تسجيل الدخول إلى السلسلة العامة (valid userInfo userInfo ، bindingResult result ، requestparam multipartfile [] files ، model model) {
……………………
}
يمكن حذف ملف واحد لا يمكن حذف ملفات متعددة
الطريقة الثانية:
نسخة الكود كما يلي:
ModelandView HandleRequest (طلب httpservletrequest ،
استجابة httpservletresponse) يلقي الاستثناء {
// تحويل إلى multiparthttprequest:
multiparthttpservletrequest multiredartrequest = (multiparthttpservletrequest) ؛
// الحصول على الملف:
ملف multipartFile = multipartrequest.getFile ("ملف") ؛
}
نسخة الكود كما يلي:
ModelandView HandleRequest (طلب httpservletrequest ،
استجابة httpservletresponse) يلقي الاستثناء {
// تحويل إلى multiparthttprequest:
multiparthttpservletrequest multiredartrequest = (multiparthttpservletrequest) ؛
// الحصول على الملف:
ملف multipartFile = multipartrequest.getFile ("ملف") ؛
}
بهذه الطريقة يمكنك أيضًا الحصول على الملف
في الواقع ، التكوين الأول هو إضافة حزمتين جرة:
المشاع filepload -1.2.2.jar
العموم-IO-2.1.JAR