remove svn:executable from .cs files
[mono.git] / mcs / class / System.Web / System.Web.UI.HtmlControls / HtmlInputFile.cs
1 /*      System.Web.UI.HtmlControls\r
2 *       Authors\r
3 *               Leen Toelen (toelen@hotmail.com)\r
4 */\r
5 \r
6 using System;\r
7 using System.ComponentModel;\r
8 using System.Web;\r
9 using System.Web.UI;\r
10 using System.Globalization;\r
11 using System.Collections.Specialized;\r
12 \r
13 namespace System.Web.UI.HtmlControls{\r
14         [ValidationProperty("Value")]\r
15         public class HtmlInputFile : HtmlInputControl, IPostBackDataHandler{\r
16                 \r
17                 public HtmlInputFile():base("file"){}\r
18                 \r
19                 bool IPostBackDataHandler.LoadPostData (string postDataKey,\r
20                                                        NameValueCollection postCollection)\r
21                 {\r
22                         return false;\r
23                 }\r
24                 \r
25                 void IPostBackDataHandler.RaisePostDataChangedEvent ()\r
26                 {\r
27                 }\r
28                 \r
29                 [DefaultValue("")]\r
30                 [WebCategory("Behavior")]\r
31                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
32                 public string Accept{\r
33                         get{\r
34                                 string attr = Attributes["accept"];\r
35                                 if (attr != null)\r
36                                         return attr;\r
37                                 return String.Empty;\r
38                         }\r
39                         set{\r
40                                 Attributes["accept"] = AttributeToString(value);\r
41                         }\r
42                 }\r
43                 \r
44                 [DefaultValue("")]\r
45                 [WebCategory("Behavior")]\r
46                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
47                 public int MaxLength{\r
48                         get{\r
49                                 string attr = Attributes["maxlength"];\r
50                                 if (attr != null)\r
51                                         return Int32.Parse(attr, CultureInfo.InvariantCulture);\r
52                                 return -1;\r
53                         }\r
54                         set{\r
55                                 Attributes["maxlength"] = AttributeToString(value);\r
56                         }\r
57                 }\r
58                 \r
59                 [DefaultValue("")]\r
60                 [WebCategory("Appearance")]\r
61                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
62                 public int Size{\r
63                         get{\r
64                                 string attr = Attributes["size"];\r
65                                 if (attr != null)\r
66                                         return Int32.Parse(attr, CultureInfo.InvariantCulture);\r
67                                 return -1;\r
68                         }\r
69                         set{\r
70                                 Attributes["size"] = AttributeToString(value);\r
71                         }\r
72                 }\r
73                 \r
74                 [DefaultValue("")]\r
75                 [WebCategory("Misc")]\r
76                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]\r
77                 public HttpPostedFile PostedFile{\r
78                         get{\r
79                                 return Context.Request.Files[RenderedName];\r
80                         }\r
81                 }\r
82 \r
83                 protected override void OnPreRender (EventArgs e)\r
84                 {\r
85                         base.OnPreRender (e);\r
86                         for (Control ctrl = this.Parent; ctrl != null && !(ctrl is Page); ctrl = ctrl.Parent) {\r
87                                 if (!(ctrl is HtmlForm))\r
88                                         continue;\r
89 \r
90                                 HtmlForm form = (HtmlForm) ctrl;\r
91                                 if (form.Enctype == "")\r
92                                         form.Enctype = "multipart/form-data";\r
93                                 break;\r
94                         }\r
95                 }\r
96 #if NET_1_1\r
97                 [Browsable (false)]\r
98                 public override string Value {\r
99                         get {\r
100                                 HttpPostedFile file = PostedFile;\r
101                                 if (file == null)\r
102                                         return "";\r
103 \r
104                                 return file.FileName;\r
105                         }\r
106 \r
107                         set {\r
108                                 throw new NotSupportedException ();\r
109                         }\r
110                 }\r
111 #endif\r
112                 \r
113         } // class HtmlInputFile\r
114 } // namespace System.Web.UI.HtmlControls\r
115 \r