Java 使用ExtJS和Jersey上传文件
我有一个基于ExtJS的应用程序,我想通过Jersey的Restful上传一个文件,一个图像,但我不能这样做,可能吗?。这是我代码的一部分: 视图: 爪哇: 问题是我从来没有接触过Java类,ExtJS表单没有发送任何东西,我需要更改/添加什么 如果您需要更多的代码,请询问 提前谢谢 编辑: 我正在使用名为Postman的chrome扩展进行测试,以下是请求的配置: 邮差测验:Java 使用ExtJS和Jersey上传文件,java,extjs,file-upload,extjs4,jersey,Java,Extjs,File Upload,Extjs4,Jersey,我有一个基于ExtJS的应用程序,我想通过Jersey的Restful上传一个文件,一个图像,但我不能这样做,可能吗?。这是我代码的一部分: 视图: 爪哇: 问题是我从来没有接触过Java类,ExtJS表单没有发送任何东西,我需要更改/添加什么 如果您需要更多的代码,请询问 提前谢谢 编辑: 我正在使用名为Postman的chrome扩展进行测试,以下是请求的配置: 邮差测验: Accept: application/json Content-type: multipart/form-data
Accept: application/json
Content-type: multipart/form-data
Cache-Control: no-cache
Url: http://localhost/app/icon/upload
Method: POST
File: Mine.doc
我在项目中添加了一些jar,jersey-multipart-1.17.1.jar和mimepull-1.9.3.jar,但我无法使用扩展对其进行测试,我得到的结果如下:
A message body reader for Java class com.sun.jersey.core.header.FormDataContentDisposition, and Java type class com.sun.jersey.core.header.FormDataContentDisposition, and MIME media type multipart/form-data was not found.
The registered message body readers compatible with the MIME media type are:
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
com.sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy
问候。显然pom.xml中存在依赖性问题,并且错误配置了该方法,如果您能提供帮助,我将其留给其他人:
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces({ MediaType.APPLICATION_JSON })
public ServiceResponse uploadFIle(FormDataMultiPart form) {
byte[] fileContents = form.getField("iconBmp").getValueAs(byte[].class);
String uploadedfilename = form.getField("iconBmp").getContentDisposition().getFileName();
String description = form.getField("description").getValue();
String fileName = form.getField("fileName").getValue();
//String id = form.getField("id").getValue();
// TODO:
//catIconBean.uploadIcon(fileContents);
ServiceResponse sr = new ServiceResponse();
sr.httpResponse = true;
return sr;
}
问候。请添加一些console.log消息,例如form.submit之前和form.isValid之前的消息,并观察网络选项卡Chrome/Firefox,看看会发生什么。另外,添加一个故障处理程序并记录输出。然后更新您的问题,我们将帮助您。
A message body reader for Java class com.sun.jersey.core.header.FormDataContentDisposition, and Java type class com.sun.jersey.core.header.FormDataContentDisposition, and MIME media type multipart/form-data was not found.
The registered message body readers compatible with the MIME media type are:
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
com.sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces({ MediaType.APPLICATION_JSON })
public ServiceResponse uploadFIle(FormDataMultiPart form) {
byte[] fileContents = form.getField("iconBmp").getValueAs(byte[].class);
String uploadedfilename = form.getField("iconBmp").getContentDisposition().getFileName();
String description = form.getField("description").getValue();
String fileName = form.getField("fileName").getValue();
//String id = form.getField("id").getValue();
// TODO:
//catIconBean.uploadIcon(fileContents);
ServiceResponse sr = new ServiceResponse();
sr.httpResponse = true;
return sr;
}