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

spring RESTcontroller接受dataURI

充运浩
2023-03-14
angular.module('myApp', [
                         'ngRoute',
                         'myApp.view1',
                         'myApp.view2',
                         'myApp.version',
                         'ngImgCrop'
                         ])
                         .controller('Ctrl',['$scope','notify', function($scope,notify) {
                             $scope.myImage='';
                             $scope.myCroppedImage='';

                             var handleFileSelect=function(evt) {
                                 var file=evt.currentTarget.files[0];
                                 var reader = new FileReader();
                                 reader.onload = function (evt) {
                                     $scope.$apply(function($scope){
                                         $scope.myImage=evt.target.result;
                                     });
                                 };
                                 reader.readAsDataURL(file);
                             };
                             angular.element(document.querySelector('#fileInput')).on('change',handleFileSelect);
                             $scope.submit=function() {
                                 notify($scope.myCroppedImage);
                             };
                         }]).
                         factory('notify',['$http', function($http) { 
                               return function(myCroppedImage) {
                                   var name = 'vishnu';
                                   $http.post('http://localhost:8080/imageUpload', myCroppedImage)
                                   .success(function(data, status, headers, config) {
                                     alert("success");
                                   })
                                   .error(function(data, status, headers, config) {
                                       alert("fail");
                                   });
                               }
                         }])
@RequestMapping(value="/imageUpload",method=RequestMethod.POST)
@ResponseBody
public String imageUpload(@RequestBody MultipartFile data){

    return "success";
}

当我运行以下请求时,web服务中出现了一些异常。

远程地址:127.0.0.1:8080请求URL:http://localhost:8080/imageupload请求方法:post状态代码:500内部服务器错误请求头视图源接受:application/json,text/plain,/接受-编码:gzip,deflate接受-语言:en-us,en;q=0.8连接:keep-alive内容-长度:1850内容-类型:application/json;charset=UTF-8主机:localhost:8080起源:文件://用户-代理:mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,like Gecko)

请求有效载荷数据:image/png;base64,ivborw0kggoaaaansuheugaaamgaaadicayaaactwk6eaaafikleqvr4xu3vsrhamazeshj/ptobxbb9pfchylycz0eawfxgscf......

响应头连接:close content-type:application/json;charset=UTF-8日期:2015年4月24日星期五12:40:35 GMT服务器:apache-coyote/1.1 transfer-encoding:chunked

java org.springframework.web.multipart.multipartException中的异常:当前请求不是多部分请求

共有1个答案

谭翰海
2023-03-14

首先,您的控制器应该如下所示:

public ResponseEntity<Response> fileUpload(@RequestParam("file") MultipartFile file) {

使用@requestparam而不是@requestbody,并在与注释中使用的名称相同的参数中发送文件。

此外,您的请求应该使用multipart/form-data类型发送。例如,一个常见的html为:

<form method="POST" enctype="multipart/form-data" action="your url">
 类似资料:
  • 我正试图编写一个程序来搜索二维数组中数字的索引。在运行代码时,我不断遇到以下异常: 线程“main”java中出现异常。lang.NullPointerException:无法存储到int数组,因为“local4/[local5]”为null 代码为: 我最近才开始学习数组,2D数组中数字的索引搜索的所有解决方案都是矩形的,这让我认为,对于2D非矩形数组,没有办法从用户输入值,其大小也要从用户那里

  • 这是我的蓝图代码。 内部消息工作。 外部消息不工作。 我在docker中运行Red Hat AMQ 7和Fuse 7。内部消息队列在服务之间正常工作。 使用AMQ 6,当在activemq中设置时,我能够向61613上的嵌入式代理发送和接收STOMP消息。xml 现在,我正在使用AMQ 7.0的默认设置,它将接受程序设置为0.0.0.0:61616和61613,这两个接受STOMP协议。 但是相同

  • 我正在使用tomcat v8,并试图通过RequestBody向我的REST API发送一个对象。这个REST API基本上是RequestMethod。这个API内部的逻辑是删除RequestBody中传递的对象。 这对我不起作用。我后来不得不将我的方法转换为POST,但我仍然想知道DELETE是否不接受RequestBody? 这是来自Spring框架或REST原则的限制,还是与我的Tomca

  • 下面,我有我试图使用的代码。它总是命中捕捉,返回空。月和日都是整数,它们已经过检查,以确保它们在现有日期内。不管怎样,我用“05”测试一个月,用“02”测试一天。由于某种原因, ##/## 输入不起作用吗? 编辑:我正在尝试格式化此输出,使其看起来像“May 02”。当我查看文档时,我看到页面的很大一部分专门用于格式化输出。为什么我的格式不是这样?

  • 我正在尝试基于非阻塞NIO消息开发自己的通信库。我已经阅读了1000篇关于它的教程和书中的章节,我认为最后我有了一些可以在几乎没有同时连接的情况下工作的东西。但是当我在服务器端有很多连接共存时,我遇到了一些问题。 我有4个私有方法的典型选择器实现:accept、finishConnect、read和write。我的问题在于前两个:接受和完成连接。 当客户端打开一个新的套接字,并且一个可接受的键唤醒

  • 我试图通过RESTendpoint将数据从一个服务器发送到另一个服务器: 服务器B启动此请求: 服务器A接收请求并返回文件: 因此,很明显,我必须将声明更改为: 或者到 然后错误消失了,但我丢失了HttpStatus。回复时是否有确认信息?这里的正确解决方案是什么?