Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Berjaya Muat Turun Fail daripada Perkhidmatan Spring Boot REST?

Barbara Streisand
Lepaskan: 2024-10-28 07:53:02
asal
927 orang telah melayarinya

How to Successfully Download Files from a Spring Boot REST Service?

Memuat Turun Fail daripada Perkhidmatan Spring Boot REST

Dalam Spring Boot, anda boleh menggunakan perkhidmatan REST untuk memuat turun fail. Walau bagaimanapun, isu biasa timbul apabila muat turun gagal.

Berikut ialah pelaksanaan perkhidmatan yang menghadapi ralat ini:

<code class="java">@RequestMapping(path="/downloadFile",method=RequestMethod.GET)
public  ResponseEntity<InputStreamReader> downloadDocument(
                String acquistionId,
                String fileType,
                Integer expressVfId) throws IOException {
    // Code for file acquisition...

    HttpHeaders headers = new HttpHeaders();
    headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
    headers.add("Pragma", "no-cache");
    headers.add("Expires", "0");
    InputStreamReader i = new InputStreamReader(new FileInputStream(file2Upload));

    return ResponseEntity.ok().headers(headers).contentLength(file2Upload.length())
            .contentType(MediaType.parseMediaType("application/octet-stream"))
            .body(i);
}</code>
Salin selepas log masuk

Untuk menyelesaikan isu ini, pertimbangkan penyelesaian berikut:

Pilihan 1: Menggunakan InputStreamResource

Gunakan InputStreamResource untuk membalut InputStream fail:

<code class="java">InputStreamResource resource = new InputStreamResource(new FileInputStream(file));

return ResponseEntity.ok()
        .headers(headers)
        .contentLength(file.length())
        .contentType(MediaType.APPLICATION_OCTET_STREAM)
        .body(resource);</code>
Salin selepas log masuk

Pilihan 2: Menggunakan ByteArrayResource

Seperti yang dicadangkan oleh dokumentasi InputStreamResource, menggunakan ByteArrayResource mungkin lebih cekap:

<code class="java">Path path = Paths.get(file.getAbsolutePath());
ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(path));

return ResponseEntity.ok()
        .headers(headers)
        .contentLength(file.length())
        .contentType(MediaType.APPLICATION_OCTET_STREAM)
        .body(resource);</code>
Salin selepas log masuk

Dengan menggabungkan penyelesaian ini, anda sepatutnya boleh memuat turun fail dengan jayanya daripada perkhidmatan Spring Boot REST anda.

Atas ialah kandungan terperinci Bagaimana untuk Berjaya Muat Turun Fail daripada Perkhidmatan Spring Boot REST?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!