Rumah > Soal Jawab > teks badan
前台通过form表单上传文件,后台通过request.getInputStream得到流,但是POI建立wordbook要求是fileInputStream,我获取的是servletInputStream,强转会出错。怎么解决。我查的资料都是通过固定文件位置读取流,我想使用用户上传的流来生成workbook该怎么做?
巴扎黑2017-04-18 10:29:52
1. Terdapat penyelesaian untuk menyimpannya ke lokasi tertentu pada pelayan dan kemudian membacanya Anda perlu memberi perhatian kepada nama fail yang unik dan memadamnya selepas memproses
2 boleh mendapatkan fail yang merupakan objek Fail saya terlupa bagaimana untuk melakukannya
怪我咯2017-04-18 10:29:52
POI versi apa? Dalam kaedah pembinaan XSSFWorkbook, satu parameter jelas sekali ialah InputStream
怪我咯2017-04-18 10:29:52
ServletInputStream memanjangkan InputStream sudah tentu tidak boleh ditukar secara paksa Anda boleh membaca ServletInputStream daripada penimbal dan kemudian menukarnya kepada InputStream (jika anda tidak diganggu Jika ia tidak berjalan lancar, anda boleh memadamkannya)
Anda boleh cuba menggunakan springmvc,
1.@RequestParam(value="file",required = false)Fail MultipartFile //Terima parameter
2 . Tetapi masih Untuk membina laluan menyimpan fail
String path = request.getSession(true).getServletContext().getRealPath("/upload");
String fileName = new Date().getTime()+file.getOriginalFilename();
3. Simpan fail
File targetFile = new File(path,fileName);
file.transferTo(targetFile)
4.POI...