-1

画像を保存するには、次のコードを使用します。

 string filenamewithpath =
      System.Web.HttpContext.Current.Server.MapPath(
           @"~/userimages/" + incID + ".jpg");
 System.IO.File.WriteAllBytes(filenamewithpath, Util.ReadFully(image));


public class Util
    {
        public static byte[] ReadFully(Stream stream)
        {
            byte[] buffer = new byte[32768];
            using (MemoryStream ms = new MemoryStream())
            {
                while (true)
                {
                    int read = stream.Read(buffer, 0, buffer.Length);
                    if (read <= 0)
                        return ms.ToArray();
                    ms.Write(buffer, 0, read);
                }
            }
        }
    }

上記はIDで画像を保存するために機能します。更新するときは、既存のイメージを上書きする必要があり、これを行う方法についてアドバイスが必要になります。

4

2 に答える 2

4

新しいイメージ ファイルを書き込む前に古いイメージ ファイルを削除する必要がある場合は、

if (System.IO.File.Exists(filenamewithpath)
{
    System.IO.File.Delete(filenamewithpath);
}

ただし、 System.IO.File.WriteAllBytes の説明には、「ファイルが存在する場合は上書きされる」とすでに記載されています。

于 2012-05-03T10:11:07.573 に答える
2
System.IO.File.WriteAllBytes(filenamewithpath, Util.ReadFully(image));

この行を次のように置き換えます。

using (FileStream fs = new FileStream(filenamewithpath, FileMode.OpenOrCreate))
{
    var bytes=Util.ReadFully(image);
    fs.Write(bytes, 0, bytes.Length);
}
于 2012-05-03T10:39:57.573 に答える