2011-11-26 1 views
2

Silverlight 4에서 서버에 특정 파일을 업로드하고 싶습니다.파일 업로드 Silverlight에서

단순히 "찾아보기"버튼을 사용할 수있는 파일을 업로드하기 만하면됩니다. 이 버튼을 클릭하면 파일 디렉토리를 가져와 임의의 파일을 선택할 수 있습니다. & 특정 파일을 업로드 할 수 있습니다.

난, 지정에 파일을 업로드 할 수 없습니다 경로, 을받지 문제 만 대화 상자가 여러 파일을 선택할 수 없습니다 을 여는 여기에

private void btnBrowse_Click(object sender, RoutedEventArgs e) 
     { 
      var fileDialog =new OpenFileDialog(); 
      fileDialog.ShowDialog(); 
      fileDialog.Multiselect = true; 
      txtUploader.Text = fileDialog.File.DirectoryName; 
      fileDialog.File.CopyTo("C:/UploadedFiles"); 
     } 

찾아보기 버튼을 코딩 한 위치.

+3

는 내가 SL을 한 이후 오랜만이야,하지만 난 심각하게 보안으로 인해 제한 된 사용자의 컴퓨터에서 파일을 선택 기억 않습니다. 또한 CopyTo를 C : \ 경로와 함께 호출하면 실제로 C : \ path가 업로드되지 않고 사용자의 컴퓨터에있게됩니다 (부팅 할 수있는 경로는 거의 확실합니다) –

답변

3

OpenFileDialog 상자를 설정하는 순서를 변경하십시오.

또한 FileInfo 개체를 반환합니다. 여러 파일을 반환하려는 경우 File 대신 File을 사용해야하며 FileInfo 객체 컬렉션을 반환합니다. 그런 다음 컬렉션을 반복하여 정보를 얻을 수 있습니다. 파일 경로를 읽는 보안 예외를 테스트하는 코드를 테스트 할 때 @ MattGreer의 설명에 따라 수행 할 작업을 수행하는 데 필요한 권한이 없습니다.

@AnthonyWJones 덧글 추가됨.

상승 된 신뢰로 OOB를 만드는 경우를 제외하면 수행하려는 작업을 수행 할 수있는 방법이 없으므로 사용자 MyDocuments 폴더로 제한됩니다.

enter image description here

private void btnBrowse_Click(object sender, RoutedEventArgs e) 
    { 
     var fileDialog =new OpenFileDialog(); 
     fileDialog.Multiselect = true; 
     fileDialog.ShowDialog(); 

     IEnumerable<System.IO.FileInfo> files = fileDialog.Files; 
     foreach (System.IO.FileInfo fi in files) 
     { 
      txtUploader.Text = fi.DirectoryName; 
      fi.CopyTo("C:/UploadedFiles");  
     } 
    } 
+1

감사합니다. 다중 선택의 문제 !! – Faizan

+1

@ 마크 : SL에서 코드의 나머지 부분에 "권한"을 부여 할 방법이 없습니다. 당신이 올 수있는 가장 가까운 것은 신뢰 된 OOB로 그것을 가지고 있고 사용자의 MyDocuments 영역 내에서 파일을 옮기는 것입니다. – AnthonyWJones

+1

@AnthonyWJones 정보 주셔서 감사합니다. –