0

ByteArrayContentWeb サービスを介して画像ファイルをアップロードしようとしています。すべての画像を共有プロジェクトに追加し、ビルド アクションをEmbedded resource.

以下は私のコードです:

var fileBytes = File.ReadAllBytes("Avatars." + selectedAvatar);
var byteContent = new ByteArrayContent(fileBytes);
content.Add(byteContent, "file", selectedAvatar);

上記のようにしようとすると、System.IO.FileNotFoundException: Could not find file "/Projectname.Avatars.ic_avatar01_xx.png"

以下のスクリーンショットのように、共有プロジェクトのフォルダー内に直接画像を追加しました。

ここに画像の説明を入力:

を変えてみました。以下のように、ファイル パスに / を使用します。

var fileBytes = File.ReadAllBytes("Avatars/" + selectedAvatar);
var byteContent = new ByteArrayContent(fileBytes);
content.Add(byteContent, "file", selectedAvatar);

しかし、その場合、私はSystem.IO.DirectoryNotFoundException: Could not find a part of the path "/Avatars/ic_avatar01_xx.png"

共有プロジェクトに保存されている画像ファイルのパスを取得する正しい方法は何ですか?

別のアプローチも試しました:

string avatarFileName = "Avatars/" + selectedAvatar;
var assembly = typeof(ProfilePage).GetTypeInfo().Assembly;
var stream = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.{avatarFileName}");
content.Add(stream, "file", avatarFileName);

しかし、上記の場合、以下のエラーが発生します。

ここに画像の説明を入力

4

1 に答える 1