我正在将一个excel文件上传到servlet并尝试读取其内容。我能够上传文件并将其发送到servlet。在servlet上,我可以将上传作为一个部分并正确读取其名称,文件大小和内容类型。但是如何使用此“Part”作为文件读取?
我正在尝试使用POI来读取Excel文件。它需要我传入一个文件,因此我传入'Part'并将其作为文件投射。在运行时,它返回一个异常,告诉我不允许强制转换。
我没有看到request.getFile选项。反正有没有把这部分变成文件?或者另一种请求文件而不是Part的方法。请指教。
<!-- HTML -->
<form method="post" action="MyServlet" enctype="multipart/form-data">
<input type="file" name="file" id="file">
<button type="submit">Send</button>
</form>
//Servlet
public class ExcelUploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Part filePart = request.getPart("file");
if (filePart != null) {
// These prints out the correct data
System.out.println(filePart.getName());
System.out.println(filePart.getSize());
System.out.println(filePart.getContentType());
}
//Need to read excel file as follows but how do I call the filepart here?
FileInputStream fis = new FileInputStream((File)filePart);//cast doesn't work
HSSFWorkbook wb = new HSSFWorkbook(fis);
HSSFSheet sheet = wb.getSheetAt(0);
for(Row row : sheet){
for (Cell cell : row){
System.out.println(cell.getStringCellValue());
}
}
}
}
答案 0 :(得分:0)
也许使用getInputStream:
HSSFWorkbook wb = new HSSFWorkbook(filePart.getInputStream());
未尝试,但此方法位于Part。
的界面中答案 1 :(得分:-1)
**这需要的罐子是: COS-multipart.jar, 杰克逊的注解-2.2.3.jar, 杰克逊核心-2.2.3.jar, 杰克逊 - 数据绑定-2.2.3.jar, POI-3.9.jar, 其中 fileUploader 是视图中fileupload控件的名称。**
i
响应将包含上传文件的json格式。