2015-09-05 155 views
0

我使用角度文件上传将图像和表单数据一起上传到我的服务器。我一次能够成功完成一幅图像。使用角度文件上传来上传多个文件

我的问题是,在我的表单中,我需要上传两个图像,使用单独的输入(以及发送其他表单数据)。我使用单独输入的推理是我的图像之一是缩略图图像,另一图像是英雄图像。我需要能够区分它们并将每个文件路径插入到它们各自的数据库列中。

我通过this github issue阅读了解如何使用相同的输入上传多个文件,但我无法找到有关使用不同输入上传多个文件的任何内容。也许我误解了他们。

现在,如果我尝试选择标题图像,它只会更改缩略图图像的值。

这里是我的形式:

<form> 
    ...(other text form inputs above)... 
    <div class="form-group"> 
     <label class="col-sm-2 control-label"> Teaser</label> 
     <div class="col-sm-8> 
     <input class="form-control" filestyle="" accept=".png,.gif,.jpg,.jpeg" data-button-text="Choose image" type='file' data-classbutton='btn btn-default' data-classinput="form-control inline" nv-file-select='' uploader='uploader' options="{'field': 'thumbnail_url'}" 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="col-sm-2 control-label"> Header Image</label> 
     <div class="col-sm-8> 
     <input class="form-control" filestyle="" accept=".png,.gif,.jpg,.jpeg" data-button-text="Choose image" type='file' data-classbutton='btn btn-default' data-classinput="form-control inline" nv-file-select='' uploader='uploader' options="{'field': 'header_url'}" 
     </div> 
    </div> 

</form> 

这里是我如何将文件发送到我的服务器(在onCompleteAll回调我送我的表单数据到服务器):

$scope.uploader = new FileUploader({ 
     url: '/laravel/public/admin/events/thumbnail_url/file_upload', 
     alias: 'files', 
     headers: { 
     // 'X-CSRF-Token': n/a 
     }, 
     onBeforeUploadItem: function(item) { 
     /* Laravel file name alias */ 
     item.alias = 'file'; 
     }, 
     onSuccessItem: function(fileItem, response, status, headers) { 
     $scope.newEventForm[fileItem.field] = '/laravel/public/uploads/events/' + response.filename; 
     }, 
     onCompleteAll: function() { 
     /* Now ready to save form data */ 
     AdminEvent.save($scope.newEventForm).$promise.then(function(response) { 
      $scope.events.push(response.data); 
      toaster.pop('success', 'Added', 'Event added successfully.'); 
     }); 
     } 
    }); 

回答

0

我遇到了与ng-file-upload相同的问题,但我没有使用angular-file-upload。

所以可能是这个解决方案对你有帮助。

在我的应用程序中,我有用户配置文件图像和背景图像。

其中配置文件图像输入值我发送文件选项ng-file-upload但它没有提供其他选项发送第二个文件输入值。

来解决,我没有什么

  1. 创建第二个文件的输入,并使用该输入模型相同等,其中bg_avatar在铁轨我的背景图像属性NG-模型=“user.bg_avatar”我的表属性。

现在你可以获得第二个文件输入值与角度控制器中的用户对象(user.bg_avatar),我们将发送到rails和当rails获取它与其他用户属性保存。但是不要忘记允许这个属性。

相关问题