تشارك هذه المقالة مكونات تنزيل الربيع 4 للرجوع إليها. المحتوى المحدد كما يلي
حزمة com.hnust.common.controller ؛ استيراد org.apache.commons.io.fileutils ؛ استيراد org.springframework.http.httpheaders ؛ استيراد org.springframework.http.httpstatus ؛ استيراد org.springframework.http.mediaType ؛ org.springframework.web.bind.annotation.restController ؛ import java.io /*** تم إنشاؤه بواسطة Heweipo في 2016/5/27. * <p>* تنزيل وحدة تحكم عامة*/ @restControllerPublic Class DownloadController يمتد BaseController {/*** تنزيل ملف الملف العام** param ملف ملف ملف* return بايت دفق*/استجابة عامة <byte []> تصدير (ملف ملف) {return export (file.getName () ، file) ؛ } / *** الطريقة العامة لتنزيل الملفات** param اسم ملف filename* كائن ملف param* regurn byte byte* / public responseentity <byte []> تصدير (اسم ملف السلسلة ، ملف الملف) {httpheaders headers = new httpheaders () ؛ headers.setContentType (mediaType.application_octet_stream) ؛ headers.setContentDispositionFormData ("المرفق" ، encodefilename (filename)) ؛ استجابة <byte []> rs = null ؛ جرب {// httpstatus.created 201 لا يمكن استخدامه هنا لأن IE Edge لا يمكن أن يتعرف عليه ، لكن Firefox Chrome ليس مشكلة RS = استجابة جديدة <> (FileUtils.ReadFiLetobyTearray (ملف) ، رؤوس ، httpstatus.ok) ؛ } catch (ioException e) {// رمي commonexception جديد (responSeStatusenum.file_error ، e) ؛ } إرجاع روبية ؛ }/** * اسم ملف التنزيل ، وهو الاسم المعروض في المتصفح * * اسم ملف اسم ملف Param * @REGRANT اسم الملف * <p> * ie * mozilla/5.0 (Windows NT 10.0 ؛ wow64 ؛ trident/7.0 ؛ rv: 11.0) مثل gecko * <p> * mozilla/5.0 AppleWebkit/537.36 (khtml ، مثل Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 * <p> * Firefox * Mozilla/5.0 (Windows NT 10.0 Mozilla/5.0 (Windows NT 10.0 ؛ WOW64) AppleWebkit/537.36 (KHTML ، مثل Gecko) Chrome/47.0.2526.106 Safari/537.36 */private String EncodeFilename (اسم السلسلة) TREE {String Agent = request.getheader ("User-Agent"). TolowerCase () ؛ if (null! = Agent && (Agent.contains ("msie") || Agent.contains ("Edge"))) {// ie edge name = urlencoder.encode (filename ، "utf-8") ؛ } if if (agent.contains ("Safari") || Agent.contains ("chrome") || agent.contains ("firefox")) {// safari chrome firefox name = new string (filename.getbytes ("UTF-8") ، "ISO-8859-1") ؛ } آخر {// ie10 ie11 name = urlencoder.encode (اسم الملف ، "UTF-8") ؛ } // استعادة علامة Plus إلى مساحة (IE Edge لديها مشكلة) name = name.replace ("+" ، "٪ 20") ؛ } catch (UnsupportedEncodingException e) {// رمي commonexception جديد (responSeStatusenum.Failure ، e) ؛ } اسم الإرجاع ؛ }} ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.