PDA

View Full Version : پست کردن آبجکت به همراه فایل



shaghaghi
سه شنبه 05 آبان 1394, 13:02 عصر
با سلام و خسته نباشید.
من در یک پروژه Restful Web API , قصد دارم متدی داشته باشم که یک ابجکت از نوع Json را بعنوان ورودی دریافت نموده در بانک اطلاعاتی ذخیره نماید.
تا اینجا همه چیز بدون مشکل انجام می شود. مشکل از جایی شروع می شود که می خواهم علاوه بر این کار، امکان آپلود فایل را هم داشته باشم. یعنی بعد از کپی کردن فایل در پوشه خاصی از سرور، آدرس آن فایل را هم در رکورد مربوطه درج کنم.
بدنه متد بدین صورت می باشد:

public string Post([FromBody]Note value)
{
var httpRequest = HttpContext.Current.Request;
string newGuid = Guid.NewGuid().ToString().Replace("-", string.Empty);
if (httpRequest.Files.Count > 0)
{
for (int i = 0; i < httpRequest.Files.Count; i++)
{
var image = httpRequest.Files[i];
string newFilenameUrl = string.Empty;
string newFilename = newGuid + Path.GetExtension(image.FileName);
string baseUrl = httpRequest.Url.Scheme + "://" + httpRequest.Url.Authority +
httpRequest.ApplicationPath.TrimEnd('/') + "/images/";
newFilenameUrl = Path.Combine(baseUrl, newFilename);
string physicalFilename = Path.Combine(HostingEnvironment.MapPath("~/images/"), newFilename);
image.SaveAs(physicalFilename);
//INSERT ROW in db ....
return "ok";
}
}
//INSERT ROW in db ...
return "ok";
}


اما خطای زیر را دریافت می کنم:
No MediaTypeFormatter is available to read an object of type 'Note' from content with media type 'multipart/form-data
جالب اینجاست که اگر جنس پارامتر ورودی متد را متن یا عدد بگیریم،کار بدون مشکل انجام می شود اما ترکیب کردن، پارامتر ورودی از جنس آبجکت تعریفی کاربر بهمراه فایل مقدور نیست.

ممنون می شوم اگر تجربه ای دارید، راهنمایی فرمایید.