Как принять путь к файлу в заголовке и формат изображения HEIC в теле?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Как принять путь к файлу в заголовке и формат изображения HEIC в теле?

Сообщение Гость »

Я использую приложение функций Azure для привязки моей базы данных к интерфейсу. Теперь есть параметр для логотипа, который представляет собой файл больших двоичных объектов, это должен быть путь к файлу и он должен исходить из заголовка. Но если он имеет формат HEIC, он должен исходят из тела. Вот мой код, пожалуйста, кто-нибудь, скажите мне, как изменить его в соответствии с этим.

Код: Выделить всё

[Function(nameof(AddOrUpdate))]
public HttpResponseData AddOrUpdate([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req, FunctionContext ExecutionContext)
{
var ответ = ResponseDataService.GetDefaultResponseData(req );

Код: Выделить всё

try
{
var parsedFormBody = MultipartFormDataParser.ParseAsync(req.Body);
string filePath = string.Empty;

foreach (var item in parsedFormBody.Result.Files)
{
Stream requestBody = item.Data;

string fileExtension = Path.GetExtension(item.FileName);

if (Constants.ImageFileFormats.Contains(fileExtension))
{
if (requestBody != null & requestBody.Length > Constants.NotExistedId)
{
requestBody.Seek(0, SeekOrigin.Begin);

if (fileExtension == Constants.HEICImageFormat || fileExtension == Constants.HEIFImageFormat || fileExtension == Constants.HEICImageFormat.ToUpper() || fileExtension == Constants.HEIFImageFormat.ToUpper())
{
using (MagickImage image = new MagickImage(requestBody))
{
image.Format = MagickFormat.Jpeg;
image.Quality = 50;
using (MemoryStream outputStream = new MemoryStream())
{
image.Write(outputStream);
outputStream.Position = 0;
string blobContainerfolderPath = _blobStorageService.GetBlobFileContainer((Enums.EntityTypes)Convert.ToInt32(req.Headers.GetValues(Constants.EntityTypeId).First()));
filePath = _blobStorageService.StreamUpload(outputStream, blobContainerfolderPath, ".jpeg", Path.GetFileNameWithoutExtension(item.FileName)).Result;
}
}
}
else
{
string blobContainerfolderPath = _blobStorageService.GetBlobFileContainer((Enums.EntityTypes)Convert.ToInt32(req.Headers.GetValues(Constants.EntityTypeId).First()));
filePath = _blobStorageService.StreamUpload(requestBody, blobContainerfolderPath, fileExtension, Path.GetFileNameWithoutExtension(item.FileName)).Result;
}
}
}
}

List  param = _dbConnection.SetHeaders(null, Constants.UserId, req.Headers.GetValues(Constants.UserId).First());
param = _dbConnection.SetHeaders(param, Constants.ClientId, req.Headers.GetValues(Constants.ClientId).First());
param = _dbConnection.SetHeaders(param, Constants.ClientName, req.Headers.GetValues(Constants.ClientName).First());
param = _dbConnection.SetHeaders(param, Constants.BrandingColor, req.Headers.GetValues(Constants.BrandingColor).First());
param = _dbConnection.SetHeaders(param, Constants.FontColor, req.Headers.GetValues(Constants.FontColor).First());
param = _dbConnection.SetHeaders(param, Constants.Type, req.Headers.GetValues(Constants.Type).First());
param = _dbConnection.SetHeaders(param, Constants.ParentClient, req.Headers.GetValues(Constants.ParentClient).First());
param = _dbConnection.SetHeaders(param, Constants.ContactEmail, req.Headers.GetValues(Constants.ContactEmail).First());
param = _dbConnection.SetHeaders(param, Constants.SSOEnabled, req.Headers.GetValues(Constants.SSOEnabled).First());
param = _dbConnection.SetHeaders(param, Constants.HidePublicTools, req.Headers.GetValues(Constants.HidePublicTools).First());
param = _dbConnection.SetHeaders(param, Constants.LanguageIds, req.Headers.GetValues(Constants.LanguageIds).First());
param = _dbConnection.SetHeaders(param, Constants.TranslationRequired, req.Headers.GetValues(Constants.TranslationRequired).First());
param = _dbConnection.SetHeaders(param, Constants.VerticalReportEnabled, req.Headers.GetValues(Constants.VerticalReportEnabled).First());
param = _dbConnection.SetHeaders(param, Constants.LDPAssessmentEnabled, req.Headers.GetValues(Constants.LDPAssessmentEnabled).First());
param = _dbConnection.SetHeaders(param, Constants.CoCAssessmentEnabled, req.Headers.GetValues(Constants.CoCAssessmentEnabled).First());
param = _dbConnection.SetHeaders(param, Constants.GPSAssessmentEnabled, req.Headers.GetValues(Constants.GPSAssessmentEnabled).First());
param = _dbConnection.SetHeaders(param, Constants.Notes, parsedFormBody.Result.GetParameterValue(Constants.Notes));
param = _dbConnection.SetHeaders(param, Constants.FilePath, filePath.Replace("adeptiondatastorage.blob.core.windows.net", "adeption-data.azureedge.net"));
executionContext.InvokeResult(response, _dbConnection.GetResponse(Constants.uspClientAdminAdd, param));

return response;
}
catch (Exception ex)
{
throw new Exception(Message, ex);
}


Подробнее здесь: https://stackoverflow.com/questions/781 ... at-in-body
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»