2014-11-10 2 views
-1

며칠 동안이 문제에 대한 내 머리를 아프게하고 도움이 될 수 있습니다.자바 스크립트 확인을 사용하여 파일 업로드 - ASP.NET

Windows Server 2012, IIS 8.0 및 ASP.NET 4.5가 있습니다. 나는 IIS와 ASP.NET에 익숙하지 않으므로 나에게 인내심을 가져주십시오. 내가 만들고자하는 웹 사이트는 사용자가 파일을 업로드 할 수있게하여 파일이 유효한지 확인한 다음 웹 서버의 폴더에 저장합니다.

양식을 서버에 제출하기 전에 Javascript가 입력의 유효성을 검사하도록 시도했습니다. 그러나 아무것도 업로드되지 않았으므로 한 번에 한 걸음 씩하기로 결정하고 간단한 업로드 만하면됩니다 (지금 자바 인증 없이는). 여기

는 파일이 서 어떻게 현재 :

upload_page.aspx을

<html> 
... 
<script language="Javascript"> 
    function validate() 
    { 
     var filter = <allowed file extensions>; 
     var file1 = document.getElementById("uploadfile1").value; 
     //do the checks 

     if(filter.test(file1)) 
     { 
      returnval = true; 
     } 
     else 
     { 
      returnval = false; 
     } 

     return returnval; 
    } 
</script> 
... 
<body> 
    <form method="post" runat="server" name="upload" enctype="multipart/form-data"> 
     <asp:FileUpload ID="uploadfile1" runat="server" /> 
     <asp:Button ID="btnUpload" runat="server" Text="Upload" onClientClick="btnUpload_Click" /> 
     <asp:Button ID="btnReset" runat="server" Text="Reset" /> 
    </form> 
</body> 
</html> 

upload_page.aspx.cs

protected void btnUpload_Click(object sender, EventArgs e) 
{ 
    if(this.uploadfile1.HasFile) 
    { 
     this.uploadfile1.SaveAs("C:\\inetpub\\wwwroot\\uploaded_files\\" + this.uploadfile1.FileName); 
    } 
} 

아무도 내가 '무엇을 말해 줄 수있는 경우 잘못하고 있으면 크게 감사하겠습니다! 감사.

+0

'form'에 대한'action'은 어디에 있습니까? – melancia

+0

사실, 양식을 제출하기위한 '양식'에는 아무것도 없습니다. – melancia

+0

글쎄, 내가 [여기]와 같은 질문에 대한 답변으로 인해 그것을 가지고 있기 때문에 혼란 스럽다. (http://stackoverflow.com/questions/569565/uploading-files-in-asp-net-without-using-the -fileupload-server-control) 및 [여기] (http://stackoverflow.com/questions/3167240/asp-net-file-upload)를 참조하십시오. 어쨌든, 나는 그것을'action = "upload_page.aspx"'로 다시 넣었고 그것도 작동하지 않았다. – noblerare

답변

1

코드에서 서버 버튼 클릭 이벤트에 onClientClick을 사용하는 것과 같은 몇 가지 잘못된 것이 있습니다. this.uploadfile1.save..PostedFile을 사용할 수 있습니다.

protected void btnUpload_Click(object sender, EventArgs e) 
{ 
    if (uploadfile1.HasFile) 
    { 
     string rootpath = @"D:\webfile\"; 
     uploadfile1.PostedFile.SaveAs(rootpath + uploadfile1.PostedFile.FileName); 
    } 
} 

뒤에

올바른 전체 코드

ASPX 부

<form id="form1" runat="server" enctype="multipart/form-data" method="post" action="upload_page.aspx"> 
    <div> 
     <asp:FileUpload ID="uploadfile1" runat="server" /> 
     <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" /> 
     <asp:Button ID="btnReset" runat="server" Text="Reset" /> 
    </div> 
</form> 

코드가 필요 값 rootpath를 교체합니다.

+0

답변 해 주셔서 감사합니다. 나는 당신의 변화를 만들었지 만, 나는 실수를 범한다. 'btnUpload_Click'은 'ASP_upload_page_aspx'의 구성원이 아닙니다. – noblerare

+0

@noblerare, 'btnUpload_Click'의 복사본이 하나만 있는지 확인하고, 솔루션을 다시 작성하여 컴파일 오류가 없는지 확인하십시오. –

+1

모든 것을 확인하고 두 번 확인했지만'.cs' 파일이 작동하지 못했습니다. 필자는 관련 코드를'.aspx' 파일의'