私は、.net フレームワークをあまり使用せず、代わりにRequest.Form
投稿を扱うプロジェクトに取り組んでいます。
画像を保存するために使用されていたコード (これは機能しますが、品質が低下します) は次のとおりです。
files[0].SaveAs(HttpContext.Current.Server.MapPath("../uploads/") + filename);
だから私はこれに変更しようとしましたが、今では画像を保存することさえできません。( にuploadStream.Read(buffer, 0, buffer.Length)
は 0 の値が付属しています。
string imagePath = HttpContext.Current.Server.MapPath("../uploads/") + filename;
using (BinaryReader uploadStream = new BinaryReader(files[0].InputStream))
{
using (FileStream fileStream = new FileStream(imagePath, FileMode.Create))
{
byte[] buffer = new byte[32768];
int read;
while ((read = uploadStream.Read(buffer, 0, buffer.Length)) > 0)
{
fileStream.Write(buffer, 0, read);
}
}
}
Image upload without loss of qualityの質問/回答に基づいて、このコードを作成しました。アプリケーションで使用.net 4.0
しています。
別の方法はありますか、それとも私が行っていたのは正しい方法であり、何かを見逃しただけですか? PS: エラーは発生せず、データベースには正しい情報が保存されていますが、フォルダーにファイルがありません。メソッドで機能するため、そのフォルダーへのアップロードは機能しますSaveAs()
。
PS: SaveAs が画像の品質低下の原因であることについては間違っているかもしれませんがfiles[0]
、HttpFileCollection
アップロードはそこだけです。