0

私のHTMLコード:

<div class="col-md-6">
    <img ngf-src="!picFile.$error && picFile" style="height: 150px; width: 200px;">
    <input type="file" ngf-select ng-model="picFile" name="file"
                       accept="image/*" ngf-max-size="2MB"><b>Picture</b><br />
</div>
            
<div class="col-md-6">
    <img ngf-src="!sigFile.$error && sigFile" style="height: 150px; width: 200px;">
    <input type="file" ngf-select ng-model="sigFile" name="file"
                       accept="image/*" ngf-max-size="2MB"><b>Signature</b><br />
</div>

そして私のAngularコード

$scope.SaveNewJoinHolder = function (picFile, sigFile) {
    if (investor_validity == 1) {
        if ($scope.newJoinHolderForm.$valid) {
            if (typeof $scope.newJoinHolder.DOB == undefined) {
                $scope.newJoinHolder.DOB = null;
            }
            else {
                var datefilter = $filter('date');
                $scope.newJoinHolder.DOB = datefilter($scope.newJoinHolder.DOB, 'dd/MM/yyyy');
                $scope.newJoinHolder.birth_date = dateconfigservice.FullDateUKtoDateKey($scope.newJoinHolder.DOB);
            }
            Upload.upload(
              {
                  url: '/InvestorManagement/JoinHolder/SaveNewJoinHolder',
                  method: 'POST',
                  fields: $scope.newJoinHolder,
                  file: { picFile: picFile, sigFile: sigFile },
                  async: true

              })
              .success(function () {
                  toastr.success('Submitted Successfully');
               }).error(function () {
                  toastr.success('Failed');
               });
            }
        }
    };

コードをデバッグし、デバッグ中に両方のファイルを取得しました。しかし、それは私のC#メソッドを呼び出していません

public JsonResult SaveNewJoinHolder(tblJoinHolder joinHolder, HttpPostedFileBase picFile, HttpPostedFileBase sigFile)
{
    joinHolderFactory = new JoinHolderFactory();
    
    try
    {
        joinHolder.membership_id = SessionManger.BrokerOfLoggedInUser(Session).membership_id;
        joinHolder.changed_user_id = User.Identity.GetUserId();
        joinHolder.changed_date = DateTime.Now;
        joinHolder.is_dirty = 1;
        byte[] image = new byte[picFile.ContentLength];
        picFile.InputStream.Read(image, 0, picFile.ContentLength);
        joinHolder.photo = image;

        byte[] signature = new byte[sigFile.ContentLength];
        sigFile.InputStream.Read(image, 0, sigFile.ContentLength);
        joinHolder.signature = signature;

        joinHolderFactory.Add(joinHolder);
        joinHolderFactory.Save();

        return Json(new { data = "Successfully Saved Data", success = true });

    }
    catch (Exception ex)
    {
        return Json(new { data = ex.Message, success = false });
    }
}

ここで何が問題なのですか?
単一の画像をアップロードしようとすると、機能しています。

4

1 に答える 1

0

fileバージョン 7.2.0 より前では、マップをオプションとして指定できなかったため、指定する必要がありました

Upload.upload(
          {
              url: '/InvestorManagement/JoinHolder/SaveNewJoinHolder',
              method: 'POST',
              fields: $scope.newJoinHolder,
              file: [picFile, sigFile],
              fileFormDataName: ['picfile', 'sigFile'],

          })

しかし、バージョン 7.2.0 以降、元のコードは機能するはずです。ブラウザのネットワーク タブを確認して、ファイル形式のデータがサーバーに送信されていることを確認できます。

于 2015-09-12T17:07:54.400 に答える