Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
ArgumentOutOfRangeException
Message
From
08/03/2010 06:37:05
Timothy Bryan
Sharpline Consultants
Conroe, Texas, United States
 
 
To
08/03/2010 05:50:24
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Miscellaneous
Thread ID:
01453133
Message ID:
01453136
Views:
38
>Hi,
>
>I got some code off this page:
>
>http://www.aspnettutorials.com/tutorials/network/net-fileupload-aspnet2-csharp.aspx
>
>to allow a user to upload a file from a web page using the FileUpload control in ASP.NET.
>
>Here's the code:
>
>
            if (this.uplLogo.HasFile)
>            {
>                string filepath = this.uplLogo.PostedFile.FileName;
>                string pat = @"\\(?:.+)\\(.+)\.(.+)";
>                Regex r = new Regex(pat);
>                //run
>                Match m = r.Match(filepath);
>                string file_ext = m.Groups[2].Captures[0].ToString();
>                string filename = m.Groups[1].Captures[0].ToString();
>                string file = filename + "." + file_ext;
>
>                //save the file to the server 
>                this.uplLogo.PostedFile.SaveAs(Server.MapPath(".\\") + file);
>                
>                //lblStatus.Text = "File Saved to: " + Server.MapPath(".\\") + file; if (Session["LogoFile"] != null)
>                oAppSettings.LogoFile = file;
>            }
>
>I am getting an error at this line:
>
>
string file_ext = m.Groups[2].Captures[0].ToString();
>
>and the error is:
>
>System.ArgumentOutOfRangeException was unhandled by user code
> Message="Specified argument was out of the range of valid values.\r\nParameter name: i"
> Source="System"
> ParamName="i"
> StackTrace:
> at System.Text.RegularExpressions.CaptureCollection.GetCapture(Int32 i)
> at System.Text.RegularExpressions.CaptureCollection.get_Item(Int32 i)
> at SamaanSystems.IAS.Web.SettingsManager.btnSave_Click(Object sender, EventArgs e) in C:\Development\Mere Mortals .NET Framework 2008\SamaanSystems\IAS.Web\Admin\SettingsManager.aspx.cs:line 51
> at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
> at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
> at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
> at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
> at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
> at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
> InnerException:
>
>I am guessing that m.Groups[2] does not exist, but this is my first time using regular expressions. The file I am trying to upload is this:
>
>"C:\Documents\Arrive Alive\images\AALogo.jpg"
>
>Any idea what I need to do to fix this?

Frank,

Index out of Range means one of the numbers inside [] is bigger than what actually exists. Since C# is zero based then m.Groups[2] must have 3 objects or .Captures[0] doesn't have any. I would put a breakpoint on that line and check each of those for the number of objects.
Tim
Timothy Bryan
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform