我如何通过上传图像文件ASP.NET Web API?
我在文件模式下有一个输入标签,并将其发布到 API,如何将其保存到服务器文件夹?
我尝试了这段代码,但它不起作用:
private void UploadWholeFile(HttpRequestBase request)
{
for (int i = 0; i < request.Files.Count; i++)
{
var file = request.Files[i];
var ext = new FileInfo(file.FileName).Extension;
var fullPath = Path.Combine(StorageRoot, Path.GetFileName(Guid.NewGuid() + ext));
file.SaveAs(fullPath);
}
}
这里我描述了在web api中上传图片的整个过程
[Route("user/PostUserImage")]
public async Task<HttpResponseMessage> PostUserImage()
{
Dictionary<string, object> dict = new Dictionary<string, object>();
try
{
var httpRequest = HttpContext.Current.Request;
foreach (string file in httpRequest.Files)
{
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created);
var postedFile = httpRequest.Files[file];
if (postedFile != null && postedFile.ContentLength > 0)
{
int MaxContentLength = 1024 * 1024 * 1; //Size = 1 MB
IList<string> AllowedFileExtensions = new List<string> { ".jpg", ".gif", ".png" };
var ext = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf('.'));
var extension = ext.ToLower();
if (!AllowedFileExtensions.Contains(extension))
{
var message = string.Format("Please Upload image of type .jpg,.gif,.png.");
dict.Add("error", message);
return Request.CreateResponse(HttpStatusCode.BadRequest, dict);
}
else if (postedFile.ContentLength > MaxContentLength)
{
var message = string.Format("Please Upload a file upto 1 mb.");
dict.Add("error", message);
return Request.CreateResponse(HttpStatusCode.BadRequest, dict);
}
else
{
YourModelProperty.imageurl = userInfo.email_id + extension;
// where you want to attach your imageurl
//if needed write the code to update the table
var filePath = HttpContext.Current.Server.MapPath("~/Userimage/" + userInfo.email_id + extension);
//Userimage myfolder name where I want to save my image
postedFile.SaveAs(filePath);
}
}
var message1 = string.Format("Image Updated Successfully.");
return Request.CreateErrorResponse(HttpStatusCode.Created, message1); ;
}
var res = string.Format("Please Upload a image.");
dict.Add("error", res);
return Request.CreateResponse(HttpStatusCode.NotFound, dict);
}
catch (Exception ex)
{
var res = string.Format("some Message");
dict.Add("error", res);
return Request.CreateResponse(HttpStatusCode.NotFound, dict);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)