我正在尝试上传xls。 我在下面写了Rest Web服务
@POST
@Path("/ui/uploadDocument")
@Consumes("multipart/form-data")
public void uploadDocument(@RequestParam("file") MultipartFile file )
我还在下面添加了spring application context config:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="99999"/>
<property name="maxInMemorySize" value="99999"/>
</bean>
现在我尝试使用Chrome rest客户端和简单的html代码运行上面的代码,如下所示:
<form method="POST" action="http://localhost/my-core/eCom/v1/catalogue/ui/uploadDocument" enctype="multipart/form-data">
File to upload: <input type="file" name="file" id="file"><br />
Name: <input type="text" name="name"><br /> <br />
<input type="submit" value="Upload"> Press here to upload the file!
</form>
我从休息客户端或通过html代码调用它所遇到的问题是,尽管已成功调用其余调用但文件(MultipartFile)设置为null。 我错过了上面的任何设置吗?
我们正在使用spring 3.0,对于休息支持我们正在使用apache jaxrs ... 任何人的帮助表示赞赏...
答案 0 :(得分:0)
我终于通过jax rs方式解决了这个问题。
以下是代码:
@POST
@Path("/ui/uploadDocument")
@Consumes("multipart/form-data")
public Response uploadDocument(List<Attachment> attachments, @Context HttpServletRequest request) {
for (Attachment attachment : attachments) {
DataHandler handler = attachment.getDataHandler();
try {
// Creates a workbook object from the uploaded excelfile
HSSFWorkbook workbook = new HSSFWorkbook(handler.getInputStream());
HSSFSheet worksheet = workbook.getSheetAt(0);
int i = 1;
while (i <= worksheet.getLastRowNum()) {
HSSFRow row = worksheet.getRow(i++);
CatDefault catDefault = new CatDefault();
catDefault.setCatId((long) row.getCell(0).getNumericCellValue());
}
}
}
用于调用的HTML代码如下:
<form action="http://localhost/cat-core/eCom/v1/catalogue/ui/uploadDocument" method="post" enctype="multipart/form-data">
<p>
Select a file : <input type="file" name="uploadedFile" size="50" />
</p>
<input type="submit" value="Upload It" />
</form>
链接CXF很有用。