我能够读取.swf
文件的高度和大小,如果它不在指定的尺寸内,那么我必须从服务器中删除文件,不幸的是它不断产生错误,因为我无法释放资源,我不是确定我必须释放哪些其他资源。
该进程无法访问文件“C:\PROJECTS\xyz\images\banners\file.swf”,因为它正被另一个进程使用。
/* Not using below case as i not able to dispose the swfReader object which can result in unnecessary memory*/
// Create a swf stream reader
SwfReader swfReader = new SwfReader(path);
// Read the completed swf file
Swf swf = swfReader.ReadSwf();
// Read only headers of file to optimize read speed
//Swf swf = swfReader.ReadSwfHeader();
int swfHeight = swf.Header.Height;
int swfWidth = swf.Header.Width;
swfReader.Close();
if ((swfHeight > int.Parse(hdnBannerHeight.Value)) || (swfWidth > int.Parse(hdnBannerWidth.Value)))
{
lblImageUploadMessage1.Text = "File cant be upload as it has invalid dimensions";
lblImageUploadMessage1.CssClass = "lblErrorMSG";
Session["bannerImage"] = null;
if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); }
}
上面的代码生成与其他进程正在使用的文件相关,我无法使用IDispose
方法,所以我不知道如何解决这个问题。我只是使用 FileUpload 服务器控件在 asp.net 网络表单上上传文件。