Using 'HasFile' to check whether a file exists before uploading

Posted on 2006-03-22
Last Modified: 2008-02-01
I'm writing an aspx form which gathers form data and uploads a file from the user's PC
In its simplest implementation, it seems to upload a file even if there is no file to upload!
In the destination directory, I end up with a properly named file with zero size.

To get around this, I'm trying to use the 'HasFile' property described below
(In practice, I'm using an If... Then... statement to check whether there is a file to upload, upload it and add it to a mail message as an attachment.)

However, since adding 'HasFile' to my code, I keep getting the following error message:
Compiler Error Message: BC30456: 'HasFile' is not a member of 'System.Web.UI.HtmlControls.HtmlInputFile'.

I understand the HasFile property is new in .net Framework Version 2.0 but am 99% certain that I have this version of dotNet - I've just downloaded the latest dotnetfx.exe file and ran a repair of my .net Framework installation in which it states it is version 2.0.


----------Sample Code------------

<% @ Import Namespace="System.Data"       %>
<% @ Import Namespace="System.Data.OleDb" %>
<% @ Import Namespace="System.Web.Mail" %>
<% @ Import Namespace="System.Web.UI.WebControls" %>

Sub Button_Click( s As Object, e As EventArgs )
  Dim strDestinationFilePath As string
  Dim strUploadFileExtension As string
  If (inpFileUp.HasFile) Then
   strUploadFileExtension = Mid(inpFileUp.PostedFile.FileName, InStrRev(inpFileUp.PostedFile.FileName, ".") + 1)
   strDestinationFilePath = strPath & strFilename & strUploadFileExtension    'strPath and strFilename are declared/defined eslewhere
   inpFileUp.PostedFile.SaveAs( strUploadFilePath )
  End If
End Sub

<input id="inpFileUp" type="file" runat="server" />
   runat="server" />

----------------------End of sample code----------------
Question by:Beamson
    LVL 15

    Expert Comment

    You need to have Visual Studio 2005 if you are using this.

    If you are using another type of editor then I cannot help :)
    LVL 39

    Accepted Solution


    when are you getting the error?
    if at runtime,
    check the framework version your IIS server is using, version 2.0 or 1.1(in IIS properties ASP.Net tab check the version)

    if you are getting the error at design time then you may be not using VS 2005 as pointed by GavinMannion
    LVL 1

    Author Comment

    Thanks Gavin,

    I now understand that having .net version2 installed is not enough (version 1.1 was still selected in the properties you pointed out).
    Have now selected version 2 and it works.

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    Enabling OSINT in Activity Based Intelligence

    Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

    Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
    IntroductionWhile developing web applications, a single page might contain many regions and each region might contain many number of controls with the capability to perform  postback. Many times you might need to perform some action on an ASP.NET po…
    It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
    how to add IIS SMTP to handle application/Scanner relays into office 365.

    759 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    8 Experts available now in Live!

    Get 1:1 Help Now