2016-09-13 3 views
0

dnn 모듈 프로그래밍에서 파일 업로드 제어를 사용하고 싶습니다.dnn 모듈 프로그래밍에서 파일 업로드 제어를 어떻게 사용할 수 있습니까?

나는 dnn에 DnnFilePicker가 있다는 것을 알고 있지만, 각 사용자가 파일을 업로드하고 표시하고 편집하고 삭제할 수있는 간단한 코드를 원합니다.

이 코드가 있지만 완료되지 않았습니다.

// Limit filepath to user's folder 

fpUserFiles.FilePath = FolderManager.Instance.GetUserFolder(User).FolderPath; 

어떻게해야합니까 : Page_Load 이벤트에서

<%@ Register TagPrefix="dnn" Assembly="DotNetNuke.Web" Namespace="DotNetNuke.Web.UI.WebControls" %> 
<dnn:DnnFilePicker runat="server" ShowFolders="false" ID="fpUserFiles" FileFilter="pdf,gif,jpg" /> 

는 폴더를 설정?

+0

귀하의 궁금한 점은 무엇입니까? 'DnnFilePicker'를 사용할 필요는 없습니다. 'FileUpload' 컨트롤을 사용하여 다른 asp.net 프로젝트와 마찬가지로 파일을 사용할 수 있습니다. – VDWWD

답변

0

당신이 당신의 모듈 뷰에 저장 이벤트의 일종이있는 경우, 당신은 단순히 사용자가 선택한 파일의 FileID 특정 데이터베이스에 저장할 수 :

당신의 Page_Load 이벤트에서
protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
    ModelData model = new ModelData { 
     FileId = fpUserFiles.FileID 
    }; 
    // TODO: Save your model data 
} 

, 파일 선택기에서 fileID를 설정하여 모델 데이터를로드 할 수도 있습니다 (사용자가 기존 모델을 편집중인 경우). 그러면 피커 컨트롤에서 파일이 미리 선택됩니다.

fpUserFiles.FileID = model.FileId 

당신이 당신의 모델 데이터에서 얻을 수 있습니다, 다른 모듈보기에서 FileID에를 사용하여이 예처럼 파일의 속성을 활용하려면 다음

FileInfo fi = (FileInfo)FileManager.Instance.GetFile(model.FileId); 
if (fi != null) 
{ 
    pic.ImageUrl = "/" + _currentPortal.HomeDirectory + "/" + fi.RelativePath; 
} 
0

을 내 문제가 해결 될 때이 코드와 함께. 각 사용자는 자신의 파일을 해당 폴더에 업로드 할 수 있습니다. protected void Page_Load (개체 보낸 사람, EventArgs 전자) { username = UserController.GetCurrentUserInfo(). Username.ToString();

} 

    protected void Button1_Click1(object sender, System.EventArgs e) 
    { 
     var folder = Server.MapPath("~/uploads/Company/" + username); 

     if (this.FileUpload1.HasFile) 
     { 
      Directory.CreateDirectory(folder); 
      this.FileUpload1.SaveAs(folder + "/" + this.FileUpload1.FileName);    
     } 

    } 
관련 문제