に更新するときの私は、ユーザーの写真を更新するためのREST APIを構築するためにC#を使用しています:値はnullにはできません。パラメータ名:SQL Serverの
[Route("api/ce/updateFoto")]
[HttpPut]
[ActionName("updateFoto")]
public string updateFoto(int id, [FromBody] string photo)
{
SqlCommand cmd = new SqlCommand();
System.Data.DataSet ds = new System.Data.DataSet();
try
{
JObject jObject = JObject.Parse(photo);
JToken jUser = jObject["user"];
string photoString = (string) jUser["photo"];
cnn.myConnection.Open();
cmd.Connection = cnn.myConnection;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "update user set photo = convert(VARBINARY(max), '"+ photoString +"') where id=" + id;
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
return ex.Message;
}
finally
{
cnn.myConnection.Close();
}
return "ok";
}
とフロントエンドとして、私が呼び出すための角度4.私のコードを使用していますAPI:
URL = 'http://SERVER/Project/api/ce/updateFoto?id=';
SavePhoto(userAsJsonString: string, id: string) {
return this.http.put(this.URL + id, userAsJsonString, this.options)
.map((res: Response) => {
res.json();
});
httpPut応答200 OK
リターンを更新しますが、写真が更新されていない、と私はこの応答を取得しています:
応答{_body: "" バリューキャンあなたはnullになります。\ r \ nパラメータ名:s ""、ステータス:200、ok:}
私を助けることができる人はいますか?私はそれを取得していないよ!私はputの代わりにリクエストを試みましたが、写真の文字列が長すぎます!だから私は身体とput要求を実装する必要があります。
APIをデバッグしましたか?あなたはその側でファイルを受け取りますか? – mok
いいえ、実際にはわかりませんが、jsonがapiでうまくいっています –
アクションメソッドの最初の行にブレークポイントを追加し、その値が表示されているかどうかを確認してください。 (F9キーを使用して)ブレークポイントをトリガーします。そして明らかにあなたはAPIをデバッグすべきです(実行されません)。 – mok