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

多部分表单上传图像和Json

宋志学
2023-03-14

位卡在这个上,需要上传图像和json一起使用多部分形式...不知道如何发送内容类型标头或上传图像...认为我需要转换为blob...目前我只是发送我从文件输入字段中获得的数据。

任何建议都很好谢谢

        $http({
        method: 'POST',
        url: URL,
        headers: { 'Content-Type': false },

        transformRequest: function (data) {

            console.log(data);

            var formData = new FormData();
            formData.append("formatteddata", angular.toJson(data.model));


            formData.append('media', Image)

            return formData;
        },

        data: { model: shoutoutData, image: shoutoutImage}
    }).
    success(function (data, status, headers, config) {

        alert("success!");

    }).
    error(function (data, status, headers, config) {

        alert("failed!");

    });

共有2个答案

姬天逸
2023-03-14

使用formData作为参赛者,比如say@squiroid

在html代码中

<form ng-submit="vm.uploadFile()">
      <input type="file" id="filePhoto" name="file">
      <button type="submit">Save</button>
</form>
{{vm.previewImage()}}

在我的控制器中

vm.previewImage = previewImage;
function previewImage(){
        console.info("vm.file "+vm.file);
        var imageLoader = document.getElementById('filePhoto');
        console.info(imageLoader);
        imageLoader.addEventListener('change', handleImages, false);

        function handleImages(e) {
            console.info("entra handleImage");
            vm.file = e.target.files[0];
            console.info("archivo ");
            console.info(vm.file);
        }
}

vm.uploadFile = uploadFile;
function uploadFile() {
    return dataFactory.uploadFile(
        vm.file)
        .then(function successCallback(response) {
            console.info('uploadFile success');
            console.info(response);
        }, function errorCallback(response) {
            console.info('updauploadFileteUser fail');
            console.info(response);
        });
}

在DataFactory中

function updateUser(token,file,username,email,lenguaje,colapsarMenu){
    var formData=new FormData();
    formData.append('file',file);
    //append more params if you want

    return $http
        .post('/uploadFile',
        formData,{
            transformRequest:angular.identity,
            headers: {
                //Optional token bearer 'Authorization': 'Bearer '+token,
                'Content-type':undefined
            }
        });
}
拓拔元徽
2023-03-14
Here is the code what i did in my project to upload image and data:- 
HTML PAGE :-
<form role="form" name="myForm" ng-submit="submitCuisine(myForm.$valid)" novalidate>
            <div class="form-group" ng-class="{ 'has-error' : myForm.name.$invalid && myForm.name.$touched }">
               <label for="name">Name</label>
               <input type="text" class="form-control" id="name"  name="name"
                  placeholder="Name of cuisine" ng-model="dataform.name" required>
            </div>
            <div class="form-group" ng-class="{ 'has-error' : myForm.description.$invalid && myForm.description.$touched }">
               <label for="description">Description</label>
               <input type="text" class="form-control" id="description" name="description" 
                  placeholder="Description for cuisine" ng-model="dataform.description" required>
            </div>
            <div class="form-group" ng-class="{ 'has-error' : myForm.category.$invalid && myForm.category.$touched }">
               <label for="description">Category</label>
                <select class="form-control" ng-model="dataform.category" id="category" name="category" required>
                   <option>Veg</option>
                   <option>Non-veg</option>
                 </select>
            </div>
            <div class="form-group" ng-class="{ 'has-error' : myForm.subcategory.$invalid && myForm.subcategory.$touched }">
               <label for="description">Sub-Category</label>
                <select class="form-control" ng-model="dataform.subcategory" id="subcategory" name="subcategory" required>
                   <option>Main Course</option>
                   <option>Staters</option>
                 </select>
            </div>
            <div class="form-group" ng-class="{ 'has-error' : myForm.price.$invalid && myForm.price.$touched }">
               <label for="description">Price</label>
               <span class="fa fa-dollar"></span>
               <input type="number" class="form-control" id="price" name="price" 
                  placeholder="Price" ng-model="dataform.price" required>
            </div>  
            <div class="form-group">
               <label for="description">Image</label> 
               <input type="file"  file-input="files" name="file"/>
            </div>  
            <button class="btn btn-primary" type="submit" ng-disabled="myForm.$invalid"> Submit</button>
        </form>



Controller:-
$scope.submitCuisine=function(isvalid){
    if(isvalid){
        var fd=new FormData();
        angular.forEach($scope.files,function(file){
            fd.append('file',file);
        });

        fd.append('formdata',JSON.stringify($scope.dataform));

        $http.post('admin/managecuisineAdd',fd,{
            transformRequest:angular.identity,
            headers:{'Content-type':undefined}
        }).success(function(data){
            $scope.status=data;
            $scope.itemlist.push(data)
            $scope.message="New Dish Added Successfully"
        });
    }   
}

Directive :-
myApp.directive("fileInput",['$parse',function($parse){
    return{
        restrict:'A',
        link:function(scope,ele,attrs){
            ele.bind('change',function(){
                $parse(attrs.fileInput).
                assign(scope,ele[0].files)
                scope.$apply()
            });
        }
    }
}]);

Plunker:-http://plnkr.co/edit/yPNA0ij3Dn37tsI9w7Z2?p=preview检查后头在Firebug你会发现,它是显示在加密形式的图像和数据在它的最后。

 类似资料:
  • http://letitripple.org/htmlform.html 这是此html表单创建的请求。(我从chrome开发者工具中获得) ------WebKitFormBoundaryPug6XAUALAUPBR86内容-配置:表单-数据;name=“wp-user-avatars”;filename=“desert.jpg”内容-类型:image/jpeg

  • 我要哭了,因为我尝试了很多解决方案和话题,但都不起作用。 null 您需要发送一个多部分请求(enctype=“multipart/form-data”)。 所以,有人能请帮助我,为什么我有HTTP 400与上面的错误消息?我可以在代码中更改什么以使此调用工作?谢谢你

  • 我有一个问题与上传多部分形式的图像 下面是我从这个答案中使用的代码 然后我使用NSURLSession来应用请求 服务器说我没有选择要上传的图像,我现在只想上传图像 我必须使用图像路径上传任何图像或它的数据就足够了吗? 我是否错过了任何事情,任何有助于理解这一点的帮助?

  • 大家好,我想通过Retrofit2发布图像和其他数据。我在用一张图像发送数据。 所有其他信息都在储存,但我的图像不存储。当我用邮递员测试时,它工作。 请指导我在代码中的不足之处 这是我获取数据的代码 我甚至把它放在一个视图上,这很有效...

  • 有人知道如何在中使用吗。Net 4.5与上传? 我在网上找不到任何例子。

  • 问题内容: 我是angular.js的初学者,但是对基础知识有很好的了解。 我要做的是上传文件和一些表单数据作为多部分表单数据。我读到这不是angular的功能,但是3rd party库可以做到这一点。我已经通过git克隆了angular-file-upload,但是仍然无法发布简单的表单和文件。 有人可以提供如何执行此操作的示例,html和js吗? 问题答案: 首先 您无需对结构进行任何特殊更改