2017-04-04 18 views
0

PCから画像を取得してDBにアップロードしようとしています like "/Images/aaa.jpg"は新しい角度です。ここでは一例を試してみました。それは私のために働いていない。私はこれを解決するためにほぼ3日間くつろいだ。しかし私は私の要件のためのチュートリアルを見つけることができませんでした。私はIDをデバッグすると、説明が正しく渡されているが、そのパスの残りの部分は常にnullです。私は写真が保存される場所にパスを設定する必要があることを知っています。しかし、私はそれを行う方法を知らない、誰も私がこの問題を解決するのを助けることができます。画像角度とasp.netを使用してアップロード

私はこの画像をアップロードしようとしました。

$scope.uploadFile = function(files) { 
    var fd = new FormData(); 
    //Take the first selected file 
    fd.append("file", files[0]); 

    $http.post(uploadUrl, fd, { 
     withCredentials: true, 
     headers: {'Content-Type': undefined }, 
     transformRequest: angular.identity 
    }).success(ya).error(noo); 

}; 

ユーザーが追加ボタンの詳細を保存したい場合は、追加ボタンがあります。これのために私はこれを使いました。

$scope.AddImage = function() { 


     var dataObj = { 
      Id: $scope.Id, 
      Description: $scope.Description, 
      Path: $scope.Path, 
      Location: $scope.Location, 

     };. 

var request = $http({ 
      method: 'POST', 
      url: urls.api + 'Images/AddImage', 
      //data: JSON.stringify(dataObj) 
      data: dataObj 

     }).success(function (data, status) { 
      alert('saved succesfully'); 
     }) 
    .error(function (error) { 
     $scope.status = 'Unable to load ImageDetails : ' + error.message; 
     console.log($scope.status); 
    }); 
    } 

これは私のasp.netサービスです。

public async Task<int?> Addimg (Addimg dto) 
     { 
      try 
      { 
       var d = _dbContext.img 
      .FirstOrDefault(); 


       d.img_Path = dto.Path.ToString(); 
       d.img_Description = dto.Description; 
       d.img_Location = dto.Location; 


       //mark entry as modifed 
       _dbContext.Entry(d).State = EntityState.Modified; 
       await _dbContext.SaveChangesAsync(); 
       return d.img_Id; 
      } 

この私のasp.netコントローラ

[HttpPost] 
[Route("AddImage")] 
public async Task<IHttpActionResult> AddBanner(DisplayBannersDto dto) 
{ 
     if (!ModelState.IsValid) 
      return BadRequest(ModelState); 

     int? result = await _service.Addbanner(dto); 
     return Ok(); 

    } 
} 

任意の代替コードがある場合はお知らせください。

答えて

0

ファイルをアップロードし、それで何もしないているように見えます...

あなたのDisplayBannersDtoモデルに次のプロパティのようなものを追加することができ

:あなたは、どちらの保存することができます

public Stream InputStream { get; set; } 

ストリームからのディスクへのファイル、またはblobとしてのデータベース内のファイルです。

+0

あなたはそれのためのサンプルコードを与えることができますか?なぜなら新しい角度のthatsなぜ.. – ManojKanth

+0

あなたが持っている角度コードは大丈夫です。 コントローラでは、次のような形式でファイルにアクセスできます。 var file = HttpContext.Current.Request.Files [0]; var filestream = file.InputStream; var filename = file.FileName; 明らかに、例外処理/ヌルチェックなどを追加して、より堅牢なものにしたいと思うかもしれませんが、本質的にそれです! – bower

関連する問題