如何在 PUT 方法上从我的本地 API 文件夹中删除现有文件



这是我用于图像上传的以下代码,它工作正常。但问题是我想在更新现有图像(放置方法(时从我的本地项目 api 文件夹(图像(中删除现有文件。

[Route("api/Products/PostProductImage")]
public Task<IEnumerable<string>> PostProductImage(int id)
{
if (Request.Content.IsMimeMultipartContent())
{
string fullPath = HttpContext.Current.Server.MapPath("~/Image/");
MultipartFormDataStreamProvider streamProvider = new MultipartFormDataStreamProvider(fullPath);
var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t =>
{
if (t.IsFaulted || t.IsCanceled)
throw new HttpResponseException(HttpStatusCode.InternalServerError);
var fileInfo = streamProvider.FileData.Select(i =>
{
var info = new FileInfo(i.LocalFileName);
Product product =db.Products.FirstOrDefault(a=>a.Id==id);
if (product == null) {
return "product not found";
}
product.ProductImage = File.ReadAllBytes(info.FullName);
db.SaveChanges();
return "File uploaded successfully!";
});
return fileInfo;
});
return task;
}
else
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Invalid Request!"));
}
}`

那么我想在 PUT 方法中进行哪些更改,以检查我的图像文件夹中是否存在的图像并保存到数据库。 这就是我的图像保存在图像文件夹中的方式

谢谢 EBK

@ebk检查以下代码。

检查文件是否存在然后删除的代码

if(File.Exists(i.LocalFileName)) 
{ 
File.Delete(i.LocalFileName);
}

对检查扩展进行编码

string ext = Path.GetExtension(i.LocalFileName);
if(ext==".jpg" || ext ==".gif" || ext ==".png")
{
//code
}

检查文件长度的代码

var info = new FileInfo(i.LocalFileName);
var fileSizeInBytes = info.Length;

如果这有帮助,您可以将其标记为已解决:)

最新更新