前台通过form表单上传文件,后台通过request.getInputStream得到流,但是POI建立wordbook要求是fileInputStream,我获取的是servletInputStream,强转会出错。怎么解决。我查的资料都是通过固定文件位置读取流,我想使用用户上传的流来生成workbook该怎么做?
认证高级PHP讲师
你試試官網的範例。
1、有種方案是先保存到伺服器某位置再讀取,需要注意文件名稱唯一 處理完刪除 2、不對啊 上傳可以得到一個文件 是文件 File對像啊 忘記怎麼做的了
什麼版本的POI? XSSFWorkbook的建構方法裡,明明有一個的參數是InputStream啊
ServletInputStream extends InputStream當然是強轉不了的,你可以把ServletInputStream 從緩衝區讀取然後再轉換成InputStream(如果你不嫌麻煩的話),正常點的做法還是在伺服器建立臨時檔案(如果你看著不嫌麻煩的話),正常點的做法還是在伺服器建立臨時檔案(如果你看著不嫌麻煩順可以刪除
String path = request.getSession(true).getServletContext().getRealPath("/upload"); String fileName = new Date().getTime()+file.getOriginalFilename();
File targetFile = new File(path,fileName); file.transferTo(targetFile)
你試試官網的範例。
1、有種方案是先保存到伺服器某位置再讀取,需要注意文件名稱唯一 處理完刪除
2、不對啊 上傳可以得到一個文件 是文件 File對像啊 忘記怎麼做的了
什麼版本的POI? XSSFWorkbook的建構方法裡,明明有一個的參數是InputStream啊
ServletInputStream extends InputStream當然是強轉不了的,你可以把ServletInputStream 從緩衝區讀取然後再轉換成InputStream(如果你不嫌麻煩的話),正常點的做法還是在伺服器建立臨時檔案(如果你看著不嫌麻煩的話),正常點的做法還是在伺服器建立臨時檔案(如果你看著不嫌麻煩順可以刪除
3.保存文件
4.POI...