Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ExtJS和Jersey上传文件_Java_Extjs_File Upload_Extjs4_Jersey - Fatal编程技术网

Java 使用ExtJS和Jersey上传文件

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

我有一个基于ExtJS的应用程序,我想通过Jersey的Restful上传一个文件,一个图像,但我不能这样做,可能吗?。这是我代码的一部分:

视图:

爪哇:

问题是我从来没有接触过Java类,ExtJS表单没有发送任何东西,我需要更改/添加什么

如果您需要更多的代码,请询问

提前谢谢

编辑: 我正在使用名为Postman的chrome扩展进行测试,以下是请求的配置:

邮差测验:

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;
}