[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

ASP.NET FileUpload Control and VB.NET

Posted on 2009-04-04
19
Medium Priority
?
1,737 Views
Last Modified: 2012-05-06
I am having some weird behavior with a file upload control. It is not recognizing when a file is added to the FileUpload. When I browse for a file or type in a physical path, I get the message back ... You have not specified a file.

The FileUpload1.HasFile is evaluating to False, even when I browse and a file name is in the box or if I manually type in a file path.

Any ideas?
Thanks,
Joe
ASCX
-------------------
<asp:FileUpload ID="FileUpload1" runat="server" />
            &nbsp;
            <asp:LinkButton ID="LinkButton1" runat="server">Upload</asp:LinkButton>
            &nbsp;
<asp:Label ID="Label1" runat="server"></asp:Label>
 
--------------------------------
VB.NET Code behind
 
--------------------------------
 
    Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
 
        If FileUpload1.HasFile Then
            Try
                FileUpload1.SaveAs("C:\Uploads\" & _
                   FileUpload1.FileName)
                Label1.Text = "File name: " & _
                   FileUpload1.PostedFile.FileName & "<br>" & _
                   "File Size: " & _
                   FileUpload1.PostedFile.ContentLength & " kb<br>" & _
                   "Content type: " & _
                   FileUpload1.PostedFile.ContentType
            Catch ex As Exception
                Label1.Text = "ERROR: " & ex.Message.ToString()
            End Try
        Else
            Label1.Text = "You have not specified a file."
        End If
 
    End Sub
--------------------------------

Open in new window

0
Comment
Question by:NursingCorp
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 8
  • 2
  • +1
19 Comments
 

Author Comment

by:NursingCorp
ID: 24068052
When I remove the If statement, I get the following:

ERROR: Object reference not set to an instance of an object.
0
 
LVL 14

Expert Comment

by:amar31282
ID: 24068128
It is working fine at my end

The only thing to note is this that the path C:\Uploads\ should exist physically.

Means uploads folder should exist at c drive
0
 
LVL 14

Expert Comment

by:amar31282
ID: 24068224
put a break point at

 If FileUpload1.HasFile Then

and see if the processing goes inside "if" or not
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
LVL 4

Expert Comment

by:mahadevan_v
ID: 24068311
Try this

 FileUpload1.PostedFile.SaveAs("C:\Uploads\" & _
                   FileUpload1.FileName)
0
 
LVL 4

Expert Comment

by:mahadevan_v
ID: 24068332
Try this sample code..
string file = @"C:\uploads" + FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf(@"\"));
        FileUpload1.PostedFile.SaveAs(file);

This should work

U can use Server.Mappath () instead of using physical path..
0
 

Author Comment

by:NursingCorp
ID: 24068389
Thanks for the suggestions. The physical path C:\Uploads does exists.

I tried FileUpload1.PostedFile.SaveAs("C:\Uploads\" & _
                   FileUpload1.FileName)

but still getting ERROR: Object reference not set to an instance of an object. when I remove the if statement.
0
 
LVL 14

Expert Comment

by:amar31282
ID: 24068409
use ID:24068224 and see if it is going inside the condition or not.

if and see if the exception is occurring then what is the exception
0
 

Author Comment

by:NursingCorp
ID: 24068410
There are Rad Ajax controls on the page. I think that it is not completing a full postback and that is why FileUpload1.HasFile is evaluating to False
0
 
LVL 14

Expert Comment

by:amar31282
ID: 24068421
try putting EnableViewState="true" inside the FileUpload1
0
 

Author Comment

by:NursingCorp
ID: 24068434
It works on a page by itself, just not on the page with the Rad Ajax controls.
0
 

Author Comment

by:NursingCorp
ID: 24068454
I put EnableViewState="true" inside FileUpload1 and it still give me ERROR: Object reference not set to an instance of an object.
0
 
LVL 14

Expert Comment

by:amar31282
ID: 24068462
please post the aspx code.please tell On which line you are getting this error
0
 
LVL 14

Expert Comment

by:amar31282
ID: 24068475
I am sure the error is not because of fileupload it is because of some other control left uninitialized
0
 

Author Comment

by:NursingCorp
ID: 24068478
It is .ascx (building a DNN module)
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="Main.ascx.vb" Inherits="DesktopModules_AddFacility_Main" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
 
 
<telerik:RadTabStrip ID="RadTabStrip1" runat="server" 
    MultiPageID="RadMultiPage1" SelectedIndex="4" Width="800px" 
    Skin="Default2006">
    <Tabs>
        <telerik:RadTab runat="server" Text="General Information">
        </telerik:RadTab>
        <telerik:RadTab runat="server" Text="Contact Information">
        </telerik:RadTab>
        <telerik:RadTab runat="server" Text="Facility Bill Rates">
        </telerik:RadTab>
        <telerik:RadTab runat="server" Text="Facility Pay Rates">
        </telerik:RadTab>
        <telerik:RadTab runat="server" Text="Customer Notes" Selected="True">
        </telerik:RadTab>
    </Tabs>
</telerik:RadTabStrip>
<telerik:RadMultiPage ID="RadMultiPage1" Runat="server" SelectedIndex="4">
    <telerik:RadPageView ID="RadPageView1" runat="server" Width="800px">
        <table width="800" border="0" cellpadding="6" cellspacing="0">
        <tr><td colspan="4">
            <br /></td></tr>
       
        <tr>
        <td width="150"><span class="Normal">
            <b>Customer Name:</b></span></td>
        <td width="250"> 
            <telerik:RadTextBox ID="customerName" Runat="server" Skin="Default2006" 
                Width="200px" MaxLength="49">
            </telerik:RadTextBox>
            </td>
        <td width="150"> </td>
        <td width="250"> </td>
        </tr>
        
        <tr>
        <td width="150" valign="top"><span class="Normal">Physical Address:</span></td>
        <td width="250"> 
            <telerik:RadTextBox ID="physicalAddress" Runat="server" Skin="Default2006" 
                Width="200px">
            </telerik:RadTextBox> 
            <br /
            <telerik:RadTextBox ID="physicalAddress2" Runat="server" Skin="Default2006" 
                Width="200px">
            </telerik:RadTextBox>
            </td>
        <td width="150" valign="top" bgcolor="#F5F5F5">
            <span class="Normal">Billing Address:</span></td>
        <td width="250" bgcolor="#F5F5F5"> 
                    <telerik:RadTextBox ID="billingAddress" Runat="server" Skin="Default2006" 
                Width="200px">
            </telerik:RadTextBox> <br />
            <telerik:RadTextBox ID="billingAddress2" Runat="server" Skin="Default2006" 
                Width="200px">
            </telerik:RadTextBox>        
        </td>
        </tr>
        
        <tr>
        <td width="150"><span class="Normal">City:</span></td>
        <td width="250">
            <telerik:RadTextBox ID="physicalCity" Runat="server" Skin="Default2006" 
                Width="200px">
            </telerik:RadTextBox>
        </td>
        <td width="150" bgcolor="#F5F5F5"><span class="Normal">City:</span></td>
        <td width="250" bgcolor="#F5F5F5">
            <telerik:RadTextBox ID="billingCity" Runat="server" Skin="Default2006" 
                Width="200px">
            </telerik:RadTextBox>
        </td>
        </tr>
        
        <tr>
        <td width="150"><span class="Normal">State:</span></td>
        <td width="250"> 
            <telerik:RadComboBox ID="physicalState" Runat="server" 
                DataSourceID="statesSqlDataSource" DataTextField="State" DataValueField="Value" 
                Skin="Default2006" Width="200px">
                <CollapseAnimation Duration="200" Type="OutQuint" />
            </telerik:RadComboBox>
            </td>
        <td width="150" bgcolor="#F5F5F5"><span class="Normal">State:</span></td>
        <td width="250" bgcolor="#F5F5F5"> 
             <telerik:RadComboBox ID="billingState" Runat="server" 
                DataSourceID="statesSqlDataSource" DataTextField="State" DataValueField="Value" 
                Skin="Default2006" Width="200px">
                <CollapseAnimation Duration="200" Type="OutQuint" />
            </telerik:RadComboBox>
        </td>
        </tr>
        
        <tr>
        <td width="150"><span class="Normal">Zip Code:</span></td>
        <td width="250">            
 
            <telerik:RadMaskedTextBox ID="physicalZip" Runat="server" Mask="#####" 
                ResetCaretOnFocus="True" Skin="Default2006" Width="80px">
            </telerik:RadMaskedTextBox>
 
            </td>
        <td width="150" bgcolor="#F5F5F5"><span class="Normal">Zip Code:</span></td>
        <td width="250" bgcolor="#F5F5F5"> 
            <telerik:RadMaskedTextBox ID="billingZip" Runat="server" Mask="#####" 
                ResetCaretOnFocus="True" Skin="Default2006" Width="80px">
            </telerik:RadMaskedTextBox>
        </td>
        </tr>
        
        <tr>
        <td width="150"><span class="Normal">Directional Location:</span><br /><span class="SideHelp">(For Job Board)</span></td>
        <td width="250"> 
            <telerik:RadComboBox ID="directionalLocation" Runat="server" Skin="Default2006" 
                Width="200px">
                <Items>
                    <telerik:RadComboBoxItem runat="server" Text="North" Value="North" />
                    <telerik:RadComboBoxItem runat="server" Text="East" Value="East" />
                    <telerik:RadComboBoxItem runat="server" Text="South" Value="South" />
                    <telerik:RadComboBoxItem runat="server" Text="West" Value="West" />
                    <telerik:RadComboBoxItem runat="server" Text="Central" Value="Central" />
                    <telerik:RadComboBoxItem runat="server" Text="Northeast" Value="Northeast" />
                    <telerik:RadComboBoxItem runat="server" Text="Northwest" Value="Northwest" />
                    <telerik:RadComboBoxItem runat="server" Text="Southeast" Value="Southeast" />
                    <telerik:RadComboBoxItem runat="server" Text="Southwest" Value="Southwest" />
                </Items>
                <CollapseAnimation Duration="200" Type="OutQuint" />
            </telerik:RadComboBox>
            </td>
        <td width="150"><span class="Normal">Worker's Comp:</span><br /><span class="SideHelp">SIC | NAICS</span></td>
        <td width="250">
            <telerik:RadTextBox ID="sicCode" Runat="server" Skin="Default2006" 
                Width="80px">
            </telerik:RadTextBox> <span class="Normal"> | </span>
            
            <telerik:RadTextBox ID="naicsCode" Runat="server" Skin="Default2006" 
                Width="80px">
            </telerik:RadTextBox>
        </td>
        </tr>
        
        <tr>
        <td width="150"><span class="Normal">Assigned Sales Rep:</span></td>
        <td width="250"> 
            <telerik:RadComboBox ID="salesRep" Runat="server" 
                DataSourceID="salesRepsSqlDataSource" DataTextField="DisplayName" 
                DataValueField="DisplayName" Skin="Default2006" Width="200px">
                <CollapseAnimation Duration="200" Type="OutQuint" />
            </telerik:RadComboBox>
            </td>
        <td width="150"><span class="Normal">Orientation Req'd:</span></td>
        <td width="250"> 
            <telerik:RadComboBox ID="orientationRequired" Runat="server" Skin="Default2006" 
                Width="200px" AutoPostBack="True">
                <Items>
                    <telerik:RadComboBoxItem runat="server" Text="Yes" Value="Yes" />
                    <telerik:RadComboBoxItem runat="server" Selected="True" Text="No" Value="No" />
                </Items>
                <CollapseAnimation Duration="200" Type="OutQuint" />
            </telerik:RadComboBox>
            <br />
            <telerik:RadTextBox ID="orientation" Runat="server" Skin="Default2006" 
                Width="200px" Visible="False">
            </telerik:RadTextBox>
            </td>
        </tr>
        
        <tr>
        <td width="150"><span class="Normal">Facility Type:</span></td>
        <td width="250"> 
            <telerik:RadComboBox ID="facilityType" Runat="server" Skin="Default2006" 
                Width="200px">
                <Items>
                    <telerik:RadComboBoxItem runat="server" Text="Hospital" Value="Hospital" />
                    <telerik:RadComboBoxItem runat="server" Text="LTC/SNF" Value="LTC/SNF" />
                    <telerik:RadComboBoxItem runat="server" Text="Clinic" Value="Clinic" />
                    <telerik:RadComboBoxItem runat="server" Text="Office" Value="Office" />
                    <telerik:RadComboBoxItem runat="server" Text="Home Care" Value="Home Care" />
                    <telerik:RadComboBoxItem runat="server" Text="Other" Value="Other" />
                </Items>
                <CollapseAnimation Duration="200" Type="OutQuint" />
            </telerik:RadComboBox>
            </td>
        <td width="150"><span class="Normal">Number of Beds:</span></td>
        <td width="250"> 
            <telerik:RadTextBox ID="numberOfBeds" Runat="server" Skin="Default2006" 
                Width="80px">
            </telerik:RadTextBox>
            </td>
        </tr>
        
        <tr>
        <td colspan="4"><span class="Normal">Nurse to Patient Ratio:  Critical Care:</span> 
            
            <telerik:RadTextBox ID="ratioICU" Runat="server" 
                Skin="Default2006" Width="40px">
            </telerik:RadTextBox>
 
        <span class="Normal">:1   General: </span>
 
            <telerik:RadTextBox ID="ratioGeneral" Runat="server" 
                Skin="Default2006" Width="40px">
            </telerik:RadTextBox>
       
        <span class="Normal">:1   Step-Down: </span>
        
            <telerik:RadTextBox ID="ratioStepDown" Runat="server" 
                Skin="Default2006" Width="40px" Culture="English (United States)" 
                LabelCssClass="radLabelCss_Default2006">
            </telerik:RadTextBox>
        
        <span class="Normal">:1</span>
       
          
        </td>
        </tr>
        
        <tr>
        <td width="150"><span class="Normal">Status:</span></td>
        <td width="250"> 
            <telerik:RadComboBox ID="facilityStatus" Runat="server" Skin="Default2006" 
                Width="200px">
                <Items>
                    <telerik:RadComboBoxItem runat="server" Text="Active" Value="Active" />
                    <telerik:RadComboBoxItem runat="server" Selected="True" Text="Prospect" 
                        Value="Prospect" />
                </Items>
                <CollapseAnimation Duration="200" Type="OutQuint" />
            </telerik:RadComboBox>
            </td>
        <td width="150"></td>
        <td width="250"> 
 
            </td>
        </tr>
        
        <tr>
        <td width="150"><span class="Normal">Upload Contract:</span></td>
        <td width="250" valign="middle">            
            <asp:FileUpload ID="FileUpload1" runat="server" EnableViewState="true" />
            &nbsp;
            <asp:LinkButton ID="LinkButton1" runat="server">Upload</asp:LinkButton>
            &nbsp;
              <asp:Label ID="Label1" runat="server"></asp:Label>
            </td>
        </tr>
        
        <tr>
        <td width="150"> </td>
        <td width="250"> 
           
            </td>
        <td width="150"> </td>
        <td width="250"> </td>
        </tr>
        </table>
    </telerik:RadPageView>
    <telerik:RadPageView ID="RadPageView2" runat="server">
        Contact Information<br />
    </telerik:RadPageView>
    <telerik:RadPageView ID="RadPageView3" runat="server">
        Facility Pay Rates<br />
    </telerik:RadPageView>
    <telerik:RadPageView ID="RadPageView4" runat="server">
        Facility Pay Rates<br />
    </telerik:RadPageView>
    <telerik:RadPageView ID="RadPageView5" runat="server">
        Customer Notes<br />
    </telerik:RadPageView>
</telerik:RadMultiPage>
 
<asp:SqlDataSource ID="statesSqlDataSource" runat="server" 
    ConnectionString="<%$ ConnectionStrings:SiteSqlServer %>" 
    SelectCommand="SELECT [Region] as 'State', [Region] as 'Value' FROM [Geo_Regions] WHERE [RegionID] &lt;&gt; 791">
</asp:SqlDataSource>
 
 
<asp:SqlDataSource ID="salesRepsSqlDataSource" runat="server" 
    ConnectionString="<%$ ConnectionStrings:SiteSqlServer %>" 
    SelectCommand="SELECT DisplayName FROM Users WHERE UserID IN (SELECT UserID FROM UserRoles WHERE RoleID IN (33,37))">
</asp:SqlDataSource>

Open in new window

0
 

Author Comment

by:NursingCorp
ID: 24068480
Line 240
0
 
LVL 10

Expert Comment

by:Espavo
ID: 24070347
I've found that FileUploads don't work in an AJAX UpdatePanel... (Don't know why though...)
0
 
LVL 14

Expert Comment

by:amar31282
ID: 24071017
you will need to use the telerik uploader instead of asp Fileupload


something like this

 
                   

you can see the radupload samples to make it work
0
 

Accepted Solution

by:
NursingCorp earned 0 total points
ID: 24071947
After a long night of research on the Telerik site, I have found a solution to make the file upload control work with the Telerik controls, Please see the code snippet for what finally worked.

I had to put the file upload inside an asp:UpdatePanel and then when the upload button was clicked, it ran my codebehind to save the file, but it also had to trigger a full postback.
        <asp:UpdatePanel runat="server" id="UpdatePanel1">
          <ContentTemplate >
          
            <asp:FileUpload ID="FileUpload1" runat="server" EnableViewState="true" />
            &nbsp;
            <asp:LinkButton ID="LinkButton1" runat="server">Upload</asp:LinkButton>
            &nbsp;
              <asp:Label ID="Label1" runat="server"></asp:Label>
              
                    </ContentTemplate >
         <triggers>
          <asp:PostbackTrigger controlid ="LinkButton1" />
          </triggers>
          </asp:UpdatePanel>

Open in new window

0
 
LVL 14

Expert Comment

by:amar31282
ID: 24072109
great..
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Ready to improve network connectivity? Watch this webinar to learn how SD-WANs and a one-click instant connect tool can boost provisions, deployment, and management of your cloud connection.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In an ASP.NET application, I faced some technical problems. In this article, I list them out and show the solutions that I found.  I hope it will be useful. Problem: After closing a pop-up window, the parent page should be refreshed automaticall…
The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
Suggested Courses

656 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