ユーザーが画像をアップロードできるサイトがあります。画像を別の名前でユーザーのフォルダーに保存します(新しいファイル名はランダムです)
保存したらすぐに開きたいです。問題は、元の名前がキリル文字またはギリシャ文字の場合、それを開こうとするとメモリ不足の例外が発生することです (新しい名前がラテン語であっても)。画像は通常小さいので、画像を取得してラテン文字に名前を変更してアップロードしても問題ないので、問題はキリル文字にあると考えました。
//I save the image here under new name
try
{
using (FileStream fs = new FileStream(Server.MapPath(nazevSouboru), FileMode.Open, FileAccess.Read))
{
//nazevSouboru is the new name, I tried open it directly from the file and from stream, the result is the same
System.Drawing.Image img = System.Drawing.Image.FromStream(fs);//.FromFile(Server.MapPath(nazevSouboru));
if (img != null)
{
//do something with the image
}
afuImportImage.Dispose();
img.Dispose();
}
}
catch (Exception ex)
{
//out of memory exception
}
メモリ不足は、たとえば画像が正しい形式ではない場合など、より多くの例外に使用されると聞きました。しかし、どのアプリケーションでも画像を開くことができ、アップロードする前にファイル名を変更すると、全体が実際に機能すると思います。