2010-02-11 3 views
14

은 ASP.NET는 FileUpload 컨트롤을 사용하는 방법올바르게 내가 ASP.NET으로는 FileUpload 컨트롤을 사용하려고 해요

여기 내 현재 이름 공간 설정입니다 :

using System; 
using System.IO; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 

이 그리고 내 클래스 내에서, 내가 ' 그냥 사용 :

FileUpload fileUpload = new FileUpload(); 

그러나 일반적으로 FileUpload의 일부인 특성은 사용할 수없는 것 같습니다. 예 : .HasFile. 나는 뒤에있는 코드에서 Button click 메서드를 만들려고 시도하고 있는데, .HasFile의 사용법 대부분이 앞의 코드에 있음을 알았지 만 이것이 중요하지 않다는 것을 이해했다.

이유를 아는 사람이 있습니까?

답변

48

ASP.NET 컨트롤은 aspx 태그 파일에 배치해야합니다. 그것이 그들과 함께 일하는 선호되는 방법입니다. 따라서 페이지에 FileUpload 컨트롤을 추가하십시오. 이 IDrunat을 포함한 모든 필수 속성이 있는지 확인 :

<asp:FileUpload ID="FileUpload1" runat="server" /> 

인스턴스 FileUpload1의이 자동으로 페이지에 대한 부분 클래스 자동 생성/* 업데이트 .designer.cs 파일에 생성됩니다. 일반적으로 ASP의 내용을 신경 쓰지 않아도됩니다. aspx 페이지의 모든 컨트롤이 자동으로 인스턴스화된다고 가정하십시오.

다시 게시물을 할 것입니다 버튼 추가 :

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 

그런 다음 당신은 당신의 코드가 어디 * .aspx.cs 파일로 이동 버튼을 클릭 처리기를 추가합니다. C#에서는 다음과 같이 보입니다.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    if (this.FileUpload1.HasFile) 
    { 
    this.FileUpload1.SaveAs("c:\\" + this.FileUpload1.FileName); 
    } 
} 

그리고 그게 전부입니다. 모두 예상대로 작동해야합니다.당신이 System.Web.UI.WebControlsYourProject.FileUpload에 참조하고 않고는 FileUpload을 사용하는 경우

System.Web.UI.WebControls.FileUpload fileUpload; 

나는 이유는 모르겠지만, : 코드

+0

aspx page.But에서 aspx.cs 파일에서 fileupload를 만들고 싶다면 fileupload를 정의하면 잘 작동한다고 생각합니다. 어떻게 작동합니까? – Brian

+0

나는이 문제를이 문제에서 다루었 다. 여기서는 fileUpload를 codebehind에 정의했다. 그래서, 버튼을 누를 때, 아무것도 작동하지 않았다. – Brian

+0

단추에 대한 이벤트도 정의했습니다. 그러나 디버깅 할 때 작동하지 않았습니다. 버튼 btn = 새로운 Buttton.btn.Click + = 새로운 EventHandler (btn_onclick); – Brian

1

대신 파일 뒤에 코드에서 FileUpload를 인스턴스화의, 당신의 마크 업 파일 (에서 .aspx 파일)에 선언 : 다음

<asp:FileUpload ID="fileUpload" runat="server" /> 

당신이 컨트롤의 모든 속성에 액세스 할 수 있습니다, 예 : HasFile.

1

코드 숨김에서 FileUpload 컨트롤을 추가하면 HasFile 속성을 사용할 수 있어야합니다 (예 : Click 이벤트).

등록 정보가 사용 가능한 것으로 나타나지 않으면 (컴파일러 오류 또는 인텔리 센스를 통해) 사용자가 생각하는 것과 다른 변수를 참조하고있는 것일 수 있습니다.

0

intellisence가 개체에 대해 작동하지 않을 때 일반적으로 작업중인 줄 위의 클래스 어딘가에 오류가 있음을 발견했습니다.

다른 옵션은 FileUpload 개체를 인스턴스 변수로 인스턴스화하지 않은 것입니다. 코드를 확인하십시오 :

FileUpload fileUpload = new FileUpload(); 

은 코드 숨김 기능에 포함되어 있지 않습니다.

0

내 솔루션 뒤에 있었다 아니요 System.Web.UI.WebControls.FileUpload입니다.

관련 문제