Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / UI / WebControls / FileUpload.cs / 1 / FileUpload.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- // namespace System.Web.UI.WebControls { using System.ComponentModel; using System.IO; using System.Security.Permissions; using System.Text; using System.Web.UI.HtmlControls; ////// Displays a text box and browse button that allows the user to select a file for uploading. /// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] [ControlValueProperty("FileBytes")] [ValidationProperty("FileName")] [Designer("System.Web.UI.Design.WebControls.PreviewControlDesigner, " + AssemblyRef.SystemDesign)] public class FileUpload : WebControl { public FileUpload() : base(HtmlTextWriterTag.Input) { } ////// Gets the byte contents of the uploaded file. Needed for ControlParameters and templatized /// ImageFields. /// [ Bindable(true), Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public byte[] FileBytes { get { Stream fileStream = FileContent; if (fileStream != null && fileStream != Stream.Null) { long fileStreamLength = fileStream.Length; BinaryReader reader = new BinaryReader(fileStream); Byte[] completeImage = null; if (fileStreamLength > Int32.MaxValue) { throw new HttpException(SR.GetString(SR.FileUpload_StreamTooLong)); } if (!fileStream.CanSeek) { throw new HttpException(SR.GetString(SR.FileUpload_StreamNotSeekable)); } int currentStreamPosition = (int)fileStream.Position; int fileStreamIntLength = (int)fileStreamLength; try { fileStream.Seek(0, SeekOrigin.Begin); completeImage = reader.ReadBytes(fileStreamIntLength); } finally { // Don't close or dispose of the BinaryReader because doing so would close the stream. // We want to put the stream back to the original position in case this getter is called again // and the stream supports seeking, the bytes will be returned again. fileStream.Seek(currentStreamPosition, SeekOrigin.Begin); } if (completeImage.Length != fileStreamIntLength) { throw new HttpException(SR.GetString(SR.FileUpload_StreamLengthNotReached)); } return completeImage; } return new byte[0]; } } ////// Gets the contents of the uploaded file. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public Stream FileContent { get { HttpPostedFile f = PostedFile; if (f != null) { return PostedFile.InputStream; } return Stream.Null; } } ////// The name of the file on the client's computer, not including the path. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public string FileName { get { HttpPostedFile postedFile = PostedFile; string fileName = string.Empty; if (postedFile != null) { string fullFileName = postedFile.FileName; try { // Some browsers (IE 6, Netscape 4) return the fully-qualified filename, // like "C:\temp\foo.txt". The application writer is probably not interested // in the client path, so we just return the filename part. fileName = Path.GetFileName(fullFileName); } catch { fileName = fullFileName; } } return fileName; } } ////// Whether or not a file was uploaded. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public bool HasFile { get { HttpPostedFile f = PostedFile; if (f != null) { // Unfortunately returns false if a 0-byte file was uploaded, since we see a 0-byte // file if the user entered nothing, an invalid filename, or a valid filename // of a 0-byte file. We feel this scenario is uncommon. return (f.ContentLength > 0); } return false; } } ////// Provides access to the underlying HttpPostedFile. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public HttpPostedFile PostedFile { get { if (Page != null && Page.IsPostBack) { return Context.Request.Files[UniqueID]; } return null; } } protected override void AddAttributesToRender(HtmlTextWriter writer) { writer.AddAttribute(HtmlTextWriterAttribute.Type, "file"); string uniqueID = UniqueID; if (uniqueID != null) { writer.AddAttribute(HtmlTextWriterAttribute.Name, uniqueID); } base.AddAttributesToRender(writer); } // protected internal override void OnPreRender(EventArgs e) { base.OnPreRender(e); HtmlForm form = Page.Form; if (form != null && form.Enctype.Length == 0) { form.Enctype = "multipart/form-data"; } } protected internal override void Render(HtmlTextWriter writer) { // Make sure we are in a form tag with runat=server. if (Page != null) { Page.VerifyRenderingInServerForm(this); } base.Render(writer); } ////// Initiates a utility method to save an uploaded file to disk. /// public void SaveAs(string filename) { HttpPostedFile f = PostedFile; if (f != null) { f.SaveAs(filename); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- // namespace System.Web.UI.WebControls { using System.ComponentModel; using System.IO; using System.Security.Permissions; using System.Text; using System.Web.UI.HtmlControls; ////// Displays a text box and browse button that allows the user to select a file for uploading. /// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] [ControlValueProperty("FileBytes")] [ValidationProperty("FileName")] [Designer("System.Web.UI.Design.WebControls.PreviewControlDesigner, " + AssemblyRef.SystemDesign)] public class FileUpload : WebControl { public FileUpload() : base(HtmlTextWriterTag.Input) { } ////// Gets the byte contents of the uploaded file. Needed for ControlParameters and templatized /// ImageFields. /// [ Bindable(true), Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public byte[] FileBytes { get { Stream fileStream = FileContent; if (fileStream != null && fileStream != Stream.Null) { long fileStreamLength = fileStream.Length; BinaryReader reader = new BinaryReader(fileStream); Byte[] completeImage = null; if (fileStreamLength > Int32.MaxValue) { throw new HttpException(SR.GetString(SR.FileUpload_StreamTooLong)); } if (!fileStream.CanSeek) { throw new HttpException(SR.GetString(SR.FileUpload_StreamNotSeekable)); } int currentStreamPosition = (int)fileStream.Position; int fileStreamIntLength = (int)fileStreamLength; try { fileStream.Seek(0, SeekOrigin.Begin); completeImage = reader.ReadBytes(fileStreamIntLength); } finally { // Don't close or dispose of the BinaryReader because doing so would close the stream. // We want to put the stream back to the original position in case this getter is called again // and the stream supports seeking, the bytes will be returned again. fileStream.Seek(currentStreamPosition, SeekOrigin.Begin); } if (completeImage.Length != fileStreamIntLength) { throw new HttpException(SR.GetString(SR.FileUpload_StreamLengthNotReached)); } return completeImage; } return new byte[0]; } } ////// Gets the contents of the uploaded file. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public Stream FileContent { get { HttpPostedFile f = PostedFile; if (f != null) { return PostedFile.InputStream; } return Stream.Null; } } ////// The name of the file on the client's computer, not including the path. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public string FileName { get { HttpPostedFile postedFile = PostedFile; string fileName = string.Empty; if (postedFile != null) { string fullFileName = postedFile.FileName; try { // Some browsers (IE 6, Netscape 4) return the fully-qualified filename, // like "C:\temp\foo.txt". The application writer is probably not interested // in the client path, so we just return the filename part. fileName = Path.GetFileName(fullFileName); } catch { fileName = fullFileName; } } return fileName; } } ////// Whether or not a file was uploaded. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public bool HasFile { get { HttpPostedFile f = PostedFile; if (f != null) { // Unfortunately returns false if a 0-byte file was uploaded, since we see a 0-byte // file if the user entered nothing, an invalid filename, or a valid filename // of a 0-byte file. We feel this scenario is uncommon. return (f.ContentLength > 0); } return false; } } ////// Provides access to the underlying HttpPostedFile. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public HttpPostedFile PostedFile { get { if (Page != null && Page.IsPostBack) { return Context.Request.Files[UniqueID]; } return null; } } protected override void AddAttributesToRender(HtmlTextWriter writer) { writer.AddAttribute(HtmlTextWriterAttribute.Type, "file"); string uniqueID = UniqueID; if (uniqueID != null) { writer.AddAttribute(HtmlTextWriterAttribute.Name, uniqueID); } base.AddAttributesToRender(writer); } // protected internal override void OnPreRender(EventArgs e) { base.OnPreRender(e); HtmlForm form = Page.Form; if (form != null && form.Enctype.Length == 0) { form.Enctype = "multipart/form-data"; } } protected internal override void Render(HtmlTextWriter writer) { // Make sure we are in a form tag with runat=server. if (Page != null) { Page.VerifyRenderingInServerForm(this); } base.Render(writer); } ////// Initiates a utility method to save an uploaded file to disk. /// public void SaveAs(string filename) { HttpPostedFile f = PostedFile; if (f != null) { f.SaveAs(filename); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DecimalAnimation.cs
- SspiWrapper.cs
- ObjectQuery_EntitySqlExtensions.cs
- ColorBuilder.cs
- ProbeMatchesCD1.cs
- Trace.cs
- MemberRelationshipService.cs
- WorkflowOwnerAsyncResult.cs
- DataServiceRequestArgs.cs
- SQLInt32.cs
- DoubleCollection.cs
- SimpleBitVector32.cs
- EditingCommands.cs
- System.Data.OracleClient_BID.cs
- sqlinternaltransaction.cs
- PassportPrincipal.cs
- WorkflowServiceHostFactory.cs
- RegexFCD.cs
- RequiredFieldValidator.cs
- ToolStripSeparator.cs
- Selection.cs
- RangeValuePattern.cs
- BadImageFormatException.cs
- DataObjectMethodAttribute.cs
- SiteMapPath.cs
- CharConverter.cs
- PreviewPrintController.cs
- HttpVersion.cs
- NullableBoolConverter.cs
- PrintPageEvent.cs
- TargetParameterCountException.cs
- FamilyMapCollection.cs
- IsolatedStorage.cs
- Trigger.cs
- SqlWorkflowInstanceStoreLock.cs
- ComboBoxDesigner.cs
- UpdateException.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- TransformGroup.cs
- ToolStripPanelRow.cs
- DataGridRowAutomationPeer.cs
- DataServiceQueryProvider.cs
- _CommandStream.cs
- PackageRelationshipSelector.cs
- transactioncontext.cs
- ValidationHelpers.cs
- DescendantOverDescendantQuery.cs
- DataGridItemEventArgs.cs
- EventLogException.cs
- TracePayload.cs
- GenericAuthenticationEventArgs.cs
- Message.cs
- TransferMode.cs
- BaseAddressElementCollection.cs
- WindowsContainer.cs
- BindingExpressionUncommonField.cs
- MultiByteCodec.cs
- ProcessHostMapPath.cs
- ConfigurationSchemaErrors.cs
- CustomWebEventKey.cs
- EndSelectCardRequest.cs
- PathSegmentCollection.cs
- SmtpReplyReaderFactory.cs
- DataRowCollection.cs
- PrincipalPermission.cs
- SqlDeflator.cs
- EncoderParameter.cs
- RuntimeArgumentHandle.cs
- TreeNodeCollection.cs
- DataSourceCacheDurationConverter.cs
- SqlGatherProducedAliases.cs
- WorkflowStateRollbackService.cs
- ConsoleCancelEventArgs.cs
- TargetParameterCountException.cs
- ObjectTag.cs
- FontFamilyIdentifier.cs
- SchemaNotation.cs
- HttpCapabilitiesEvaluator.cs
- ElementHost.cs
- TextRange.cs
- WindowsFont.cs
- QualifiedCellIdBoolean.cs
- EndpointConfigContainer.cs
- WebPart.cs
- HttpListenerException.cs
- Inline.cs
- NamespaceExpr.cs
- DefaultHttpHandler.cs
- TypeElementCollection.cs
- QueuePathEditor.cs
- InfiniteTimeSpanConverter.cs
- MaskedTextProvider.cs
- XMLSchema.cs
- PaintEvent.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- Context.cs
- AngleUtil.cs
- NetworkStream.cs
- SourceFileBuildProvider.cs
- EncoderFallback.cs