Artikel ini membagikan komponen unduhan Spring 4 untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
paket com.hnust.common.controller; impor org.apache.commons.io.fileutils; impor org.springframework.http.httpheaders; impor org.springframework.http.httpstatus; import org.springframework.http.mediatype; impor org org.springframework.web.bind.annotation.RestController; impor java.io.file; impor java.io.ioException; impor java.io.unsupportedencodingException; impor java.net.urlencoder; /*** Dibuat oleh Heweipo pada 2016/5/27. * <p>* Unduh General Controller*/ @RESTControllerPublic Class DownloadController Memperluas Basecontroller {/*** Unduh Metode File Umum** @param File File Objek* @Return File Byte Stream*/Public Responseentity <byte []> Export (File File) {return export (file.getName (), file); } / *** Metode umum untuk mengunduh file** @param nama file nama file* @param file file* @return File byte stream* / Public ResponseEntity <byte []> Export (string fileName, file file) {httpheaders headers = new httpheaders (); headers.setContentType (mediatype.application_octet_stream); headers.setContentDispositionFormData ("lampiran", encodeFileName (nama file)); Responentity <byte []> rs = null; Coba {// httpstatus.created 201 tidak dapat digunakan di sini karena IE Edge tidak dapat mengenalinya, tetapi firefox chrome tidak masalah rs = responEntity baru <> (fileutils.readfiletobyteArray (file), header, httpstatus.ok); } catch (ioException e) {// lempar commonexception baru (responseStatusenum.file_error, e); } return rs; }/** * Nama file unduhan, yang merupakan nama yang ditampilkan di browser * * @param nama file nama * @Return Menambahkan nama file * <p> * yaitu * mozilla/5.0 (windows nt 10.0; wow64; trident/7.0; rv: 11.0) seperti GECKO * <P> * MOZA (MOZ/5.0; RV: 11.0) seperti GECKO * <P> * MOZA (PRANZA/5.0; AppleWebKit/537.36 (khtml, seperti tokek) chrome/46.0.2486.0 safari/537.36 edge/13.10586 * <p> * firefox * mozilla/5.0 (windows nt 10.0; wow64; rv: 46.0) greco/20100 * pire.0110; wow64; rv: 46.0) GECKO/20100 * pire.010; wow64; rv: 46.0) GECKO/20100 * pire.0110; wow64; rv: 46.0) GECKO/20100; Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, LIKE GECKO) Chrome/47.0.2526.106 Safari/537.36 */Private String EncodefileName (string fileName) {string name = fileNename; coba {string agent = request.getHeader ("User-agent"). TolowerCase (); if (null! = agen && (agent.contains ("msie") || agent.contains ("edge"))) {// ie edge name = urlencoder.encode (nama file, "UTF-8"); } lain jika (agen.contains ("safari") || agent.contains ("chrome") || agent.contains ("firefox")) {// safari chrome firefox name = string baru (filename.getbytes ("UTF-8"), "iso-8859-1"); } else {// IE10 IE11 name = urlencoder.encode (nama file, "UTF-8"); } // Kembalikan tanda plus ke ruang (yaitu tepi memiliki masalah) name = name.replace ("+", "%20"); } catch (UnsupportedEncodingException e) {// Lempar Commonexception baru (responseStatusenum.failure, e); } return name; }} Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.