我们正在使用GXT(EXT + GWT)和Apache commons文件上传servlet实用程序。我们有文件上传工作但某些类型没有上传,例如文本文件。即使文本文件的扩展名已更改,它们仍然无法上载。
在FileUploadBase.parseRequest方法中,这是似乎发现跳过输入流被复制到文件系统的代码。我试图加粗iter.hasNext()代码,当我打破上传文本文件时跳过stream.copy代码行。
任何建议都将不胜感激!
提前致谢。
public List /* FileItem */ parseRequest(RequestContext ctx)
throws FileUploadException {
try {
FileItemIterator **iter = getItemIterator(ctx)**;
List items = new ArrayList();
FileItemFactory fac = getFileItemFactory();
if (fac == null) {
throw new NullPointerException(
"No FileItemFactory has been set.");
}
while (**iter.hasNext()**) {
FileItemStream item = iter.next();
FileItem fileItem = fac.createItem(item.getFieldName(),
item.getContentType(), item.isFormField(),
item.getName());
try {
Streams.copy(item.openStream(), fileItem.getOutputStream(),
true);
...
答案 0 :(得分:0)
这不会回答你的问题,但我发现有用的东西可以告诉我们在GWT上传文件的好库 GWTUpload是一个用于将文件上载到Web服务器的库,显示一个进度条,其中包含有关进程的实际信息(文件大小,传输的字节数等)。它使用ajax请求向Web服务器询问上载进度。它有两个用java编写的组件,服务器端用servlet和实用程序类编写,客户端用jwt编译成javascript。 here