как удалить существующий файл из моей локальной папки API по методу пут - PullRequest
0 голосов
/ 13 июня 2018

это следующий код, который я использую для изображения upload.its работает нормально. Но проблема в том, что я хочу удалить существующий файл из папки api моего локального проекта (Image) при обновлении существующего изображения (метод put) .`

[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 для проверки изображения, которое существует или отсутствует в моей папке с изображениями, и сохранения в db.вот как мои изображения сохраняются в папке с изображениями

спасибо ebk

1 Ответ

0 голосов
/ 15 июня 2018

@ 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;

, если эта помощь позволяет пометить ее как решенную:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...