0

ファイルをアップロードするときに、The requested operation cannot be perform on a file with a user-mapped section openエラーの問題が発生しています 数日間これで困惑し、問題を切り分けました..このコードは機能しません

var fileName = Path.GetExtension(file.FileName);


                                var changename = profile.registrationID+ fileName;
                                var mytrail = Path.Combine(Server.MapPath("~/uploads/profilepic"), changename);
                                file.SaveAs(mytrail);
                                ImageBuilder.Current.Build(mytrail, mytrail, new ResizeSettings("width=100&height=130&mode=stretch"));
                                ModelState.Clear();
                                db.Entry(profile).State = EntityState.Modified;
                                db.SaveChanges();
                                return View(profile);

写真をアップロードしようとすると、ユーザー マップ セクションのオープン エラーImageBuilder.Current.Build(mytrail, mytrail, new ResizeSettings("width=100&height=130&mode=stretch")); が表示されます。が強調表示されます。問題は、上記のコードで fileName を次のように変更した場合です。

var fileName = "abc";

コード全体が動作し、画像がエラーなしでアップロードされます。唯一のことは、画像が.jpgまたは.gifではなくファイルとして保存されることです。これらの2行については、エラーの原因となっている可能性があります...

 var fileName = Path.GetExtension(file.FileName);
                                ImageBuilder.Current.Build(mytrail, mytrail, new ResizeSettings("width=100&height=130&mode=stretch"));

これは、http://imageresizing.net/docs/managed の imageResizer です

4

2 に答える 2

0

実際、それはそれより簡単です

ImageBuilder.Current.Build(file, 
   "~/uploads/profilepic/" + profile.registrationID + ".<ext>", 
    new ResizeSettings("width=100&height=130&mode=stretch"));

ImageResizer に任せるほど、より速く安全に作業が行われます。あなたの以前のコードでは、あらゆる拡張ファイルをアップロードすることができました。これは、悪用の大きな可能性を秘めたものです。<ext> は画像拡張子のみを許可します。

于 2013-05-29T13:55:13.270 に答える