当前位置: 首页 > 面试题库 >

与Angular中的其他字段一起发送FormData

郤玉书
2023-03-14
问题内容

我有一个二input text和一的表格upload。我必须将其发送到服务器,但是将文件与文本连接时遇到一些问题。服务器希望得到以下答案:

"title=first_input" "text=second_input" "file=my_file.pdf"

这是 html

<input type="text" ng-model="title">
<input type="text" ng-model="text">
<input type="file" file-model="myFile"/>
<button ng-click="send()">

这是 控制器

$scope.title = null;
$scope.text = null;

$scope.send = function(){
  var file = $scope.myFile;
  var uploadUrl = 'my_url';
  blockUI.start();
  Add.uploadFileToUrl(file, $scope.newPost.title, $scope.newPost.text, uploadUrl);
};

这是 指令文件模型

  return {
restrict: 'A',
link: function(scope, element, attrs) {
  var model = $parse(attrs.fileModel);
  var modelSetter = model.assign;

  element.bind('change', function(){
    scope.$apply(function(){
      modelSetter(scope, element[0].files[0]);
    });
  });
}
};

这就是 服务 ,其调用服务器:

  this.uploadFileToUrl = function(file, title, text, uploadUrl){
   var fd = new FormData();
   fd.append('file', file);
   var obj = {
     title: title,
     text: text,
     file: fd
   };
   var newObj = JSON.stringify(obj);

     $http.post(uploadUrl, newObj, {
       transformRequest: angular.identity,
       headers: {'Content-Type': 'multipart/form-data'}
     })
  .success(function(){
    blockUI.stop();
  })
  .error(function(error){
    toaster.pop('error', 'Errore', error);
  });
}

如果尝试发送,则会收到错误400,响应为:Multipart form parse error - Invalid boundary in multipart: None。请求的有效负载为:{"title":"sadf","text":"sdfsadf","file":{}}


问题答案:

不要序列FormDataPOST荷兰国际集团服务器。做这个:

this.uploadFileToUrl = function(file, title, text, uploadUrl){
    var payload = new FormData();

    payload.append("title", title);
    payload.append('text', text);
    payload.append('file', file);

    return $http({
        url: uploadUrl,
        method: 'POST',
        data: payload,
        //assign content-type as undefined, the browser
        //will assign the correct boundary for us
        headers: { 'Content-Type': undefined},
        //prevents serializing payload.  don't do it.
        transformRequest: angular.identity
    });
}

然后使用它:

MyService.uploadFileToUrl(file, title, text, uploadUrl).then(successCallback).catch(errorCallback);


 类似资料:
  • 问题内容: 我想用hibernate返回一组中其他字段的行 数 ,而我的实体类中没有任何字段代表计数。例如我有一个付款实体类: sql查询: 和我的hibernate标准: 如我所说,我的问题是我不知道在哪里/如何访问count的值(来自criteria.list())! 问题答案: 我认为这是您代码的正确版本:

  • 问题内容: 我正在使用jQuery将文件上传到服务器: 我想将其他参数与文件一起发送。可能吗?如果是,怎么办? 谢谢! 问题答案: 要发送其他参数,您可以将其附加到如下所示:

  • 问题内容: 我想在其中自动创建的ManyToMany联接表中存储一些其他信息。我将如何在Django中做到这一点? 就我而言,我有两个表:“雇员”和“项目”。我要存储的是每个项目中每个员工每小时工作所获得的收入,因为这些价值并不相同。那么,我该怎么做呢? 我想到的是,不是使用方法“ ManyToManyField”,而是显式创建了一个第三类/表来存储这些新信息,并使用“ ForeignKey”方法

  • 我有一个html。我需要上传图像和angularjs和spring rest服务中的其他表单字段。下面是html。 以下是Spring控制器方法。 在上面的代码中,我想上传文件以及数据字段。我使用的是角js和Spring rest服务。如何在js中发送文件以及数据,以及如何在Spring控制器中获取值。我的意思是我应该在上传图像()方法中使用哪些参数来获取控制器中的表单数据字段和文件。 添加控制器

  • 我只能通过包装每个where条件{'patient id':'123'},{'diet':{$elemmatch:{'status':'a'}}}来使它在Mongo shell中工作。 我如何强制Mongoose将每个查询字段括在花括号中或任何其他想法中?

  • 本文向大家介绍从由SAP HANA中其他字段分组的表的同一行中获取最大日期和其他字段,包括了从由SAP HANA中其他字段分组的表的同一行中获取最大日期和其他字段的使用技巧和注意事项,需要的朋友参考一下 您已完成了部分纠正,但只差了一步就获得了预期的结果。分组后需要从结果中选择行之一的情况,请使用等级编号或等级函数。 您需要根据需求对数据进行分区,然后根据需求对它们进行排序,然后选择所需的行。 示