Добавить счетчик для загрузки файлов C # - PullRequest
0 голосов
/ 09 ноября 2018

Мне нужно добавить номер счетчика к файлам при сохранении загруженных файлов, например, клиент загрузить 2 файла imagex.jpg, imagey.jpg

Я хочу сохранить их на сервере как Client_UPI_1.jpg, Client_UPI_2.jpg

Ниже приведен код, который я использую

public class CustomMultipartFormDataStreamProvider : MultipartFormDataStreamProvider
{
    string _filename = null;
    public CustomMultipartFormDataStreamProvider(string path,string filename) : base(path) { _filename = filename; }

    public override Stream GetStream(HttpContent parent, HttpContentHeaders headers)
    {
        Logger.LogMessage(LogType.Debug, "GetStream Start");
        var fileExtension = Path.GetExtension(headers.ContentDisposition.FileName.Replace("\"", ""));
        Logger.LogMessage(LogType.Debug, "GetStream complete");
        return base.GetStream(parent, headers);
    }

    public override string GetLocalFileName(HttpContentHeaders headers)
    {
        ContentDispositionHeaderValue disposition = headers.ContentDisposition;
        string filename = (disposition != null && disposition.FileName != null) ? disposition.FileName : String.Empty;
        string extension = Path.GetExtension(filename.Replace("\"", ""));
        return String.Format(CultureInfo.InvariantCulture, "{0}", (_filename));
    }

  }

Подготовьте CustomMultipartFormDataStreamProvider, в который будут загружены данные из нескольких составных форм

string fileUploadPath = Path.Combine(ConfigHelper.FILE_UPLOAD_LOCATION);
int counter = 0;
string filename = "Client_UPI_" + counter + ".jpg"; // NEED TO UPDATE THE COUNTER SO THAT FILE NAME A SEQUENCE NUMBER
CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(fileUploadPath,filename);

var task = request.Content.ReadAsMultipartAsync(provider).
    ContinueWith<HttpResponseMessage>(o =>
    {
         //some logic
    }
);
return task;

В настоящее время все мои имена файлов сохраняются как «Client_UPI_0.jpg», я хочу обновить номер счетчика, основываясь на последовательности файлов, например, file1 будет «Client_UPI_1.jpg», а file2 будет «Client_UPI_2.jpg» и т. Д.

...