当前位置: 首页 > 知识库问答 >
问题:

Jersey upload收到请求元,而不是文件

路裕
2023-03-14

我已经让这个代码运行良好,但是现在,经过几次修改后,当我回到它的上传功能时,它似乎只读取请求的元数据,而不是实际的文件。所以,例如,这就是我在尝试上传txt文件时得到的结果:

-webkitformboundaryf 5 iarvfzqsy 3 zpj 4 content-Disposition:form-data;name = " file " undefined-webkitformboundaryf 5 iarvfzqsy 3 zpj 4-

JS:

$scope.setFiles = function(element) {
    $scope.$apply(function($scope) {
        console.log('files:', element.files[0]);
        // Turn the FileList object into an Array
        $scope.files = element.files[0];
        $scope.progressVisible = false;
    });
};

$scope.analyseFile = function() {
    var fd = new FormData();
    fd.append("file", $scope.files[0]);

    var xhr = new XMLHttpRequest();
    xhr.addEventListener("load", uploadComplete, false);
    xhr.addEventListener("error", uploadFailed, false);
    xhr.addEventListener("abort", uploadCanceled, false);
    xhr.open("POST", "/rest/analysisController/analyseFile");
    $scope.progressVisible = false;
    xhr.send(fd);
};

和服务器端:

@POST
@Path("analyseFile")
@Produces("application/json; charset=UTF-8")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response analyseFile(
        @FormDataParam("file") InputStream uploadedInputStream) throws
        RemoteException {

    System.out.println(getStringFromInputStream(
            uploadedInputStream));

    return Response.ok().build();
}

我还包括多部分依赖关系:

<dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-multipart</artifactId>
        <version>2.5.1</version>
        <scope>provided</scope>
    </dependency>

共有1个答案

陆正德
2023-03-14

原来我的问题出在切换到缩小版的“angular-file-upload.js”上。缩小版由于某种原因无法工作,因此它实际上没有发送文件的内容。

我不确定这个答案是否真的会帮助任何人,但以防万一。

 类似资料:
  • 收到请求事件 function onRequest(Request $request,Response $response); 当easySwoole收到任何的HTTP请求时,均会执行该事件。该事件可以对HTTP请求全局拦截。 $sec = new Security(); if($sec->check($request->getRequestParam())){ $response->wri

  • 首先,我不想在这个事务中与服务器交互。我正在使用FetchAPI发送请求,但在url中我想传递一个js文件。像这样的- 此外,如果有可能,我们可以只使用JS获取POST变量吗? 我知道这样做似乎没有任何意义。但我正在尝试一些东西,非常感谢任何帮助。

  • 我现在有一个helloworld项目根据这个链接,我做了它的。帽子 文件成功。我有“DE-ABCM_TB”读卡器和SAM卡。 我的小程序AID是 我可以在卡片上选择我的小程序。(我通过"DualCard"发送SELECT APDU命令 2.8版“/pcsc选项卡)。我现在必须在发送时接收十六进制格式的hello 。但我收到6C0B!为什么我会得到这样的回应 我如何解决这个问题?我搜索了一下,但没有

  • 问题内容: 我并不是要求个人对这一哲学有“宗教”的看法,而是一些更专业的观点。 我理解这句话是几个试金石之一,看看你的代码是否是“pythonic”。但对我来说,pythonic意味着干净、简单和直观,没有为错误的代码加载异常处理程序。 所以,实际的例子。我定义一个类: 现在,从程序背景来看,在另一个函数中,我想这样做: 如果我不耐烦并且没有执行初始foo=None,我将得到一个属性异常。所以,“

  • 问题内容: 我正在使用HttpClient发出发布请求。我回到405方法不被允许。在提琴手中捕获轨迹时,它作为GET而不是POST发出! 我知道异步/等待问题。这是显示问题的简化示例。 是否存在某种可能会影响此的web.config或machine.config设置?其他请求(通过RestSharp发送)正确发送了帖子 这是提琴手捕获的东西。在提琴手中运行跟踪也会返回405(如预期)。手动将其切换

  • 我创建了简单的应用程序来开始使用 socket.io,但是当我运行它时,Chrome(在其他浏览器中测试,结果相同)会吃掉我所有的 CPU 并发出许多请求: 我是套接字新手,但我肯定这不是它应该如何工作。在浏览器中运行的代码非常简单,它应该只连接到套接字并将所有接收到的数据记录到控制台: 索引.html 另外,我的服务器文件如下所示: 服务器.js 当我运行服务器时,我让,一切似乎都很好。但是当我