C#.NET Q&A

C# 파일 여러개 업로드 타타 평점: 없음 조회: 583
업로드를 구현은 했는데..
한번에 여러개를 선택해 업로드 하는것을 생각하고있는데요
어떤 방법이 있을까요??
태그 : C# FTP
작성자 정보
타타
Level 12
 [EXP.3/40]

메일:  비공개
글등록 +12 96 덧글등록 +3 33
자기소개
안녕하세요.
글 공유하기 |
  tweet facebook
2018-03-13 오후 1:47:41
나도한마디
사용자
썬콩콩            [2018-03-13]
Level 11
 [EXP.6/40]
간단하게 생각하면 WPF 사용시 openfiledialog 의 multiselect를 사용하여 업로드할 파일의 경로를 받아오고 이것을 업로드 구현한 메서드에 적용시켜서 실행하는 방법이 있겠네요 ~
사용자
타타            [2018-03-19]
Level 12
 [EXP.3/40]
답변 참고해서 좀 다르게 구현을했습니다.
혹시 한번에 하나씩이아닌, 한번에 여러개씩 업로드가 진행되게 하려면
무엇을 사용해야할까요?
사용자
썬콩콩            [2018-03-20]
Level 11
 [EXP.6/40]
데이터 전송시 1개씩 불러들여 전송하는 방식이라 ......한파일씩 여러개를 보내는걸 하나처럼 보내게 보여주는거 뿐일거에요 프로그래스바 사용을 원하시는거면 전체 파일 사이즈를 프로그래스바에 적용해서 사용하셔야하구요 아니면 압축해서 압축파일을 보내시면 될거같네요 ~
사용자
타타            [2018-03-20]
Level 12
 [EXP.3/40]
네 이건 멀티스레드 쪽이라던가,, 방법이 있는지 알아봐야겠네요
그동안 답변 정말 감사드립니다!
사용자
타타            [2018-03-13]
Level 12
 [EXP.3/40]
답변 감사합니다.
윈폼이긴한데 MultiSelect 줘서 다중 파일을 목록으로 ListBox에 담기까지는 했습니다. 이제 이상태에서 업로드 구현해놓은 코드에.. 반복문으로? 아님 스레드로? 그렇게 돌려야 하는게 맞겠죠?
사용자
썬콩콩            [2018-03-13]
Level 11
 [EXP.6/40]
네 ~ 그리고 메서드의 경우엔 배열이나 리스트를 매개변수로 주어서 단일이든 다중이든 실행할수있게끔 만드는게 좋아요 ~
사용자
썬콩콩            [2018-03-15]
Level 11
 [EXP.6/40]
BackgroundWorker 일단 단일 업로드는 완료 하셨으니 그걸 기준으로 List로 다 받아오셨으면 카운트해주는 멤버변수 하나를 선언해서 업로드 완료부분에 카운트 변수를 한개씩 증가시키고 리스트 크기와 카운트변수를 비교해서 같아질때까지 반복하시면 될거같아요 ~
사용자
타타            [2018-03-16]
Level 12
 [EXP.3/40]
private void btnUpload_Click(object sender, EventArgs e)
{
using (OpenFileDialog ofd = new OpenFileDialog() { Multiselect = true, ValidateNames = true, Filter = "All files|*.*" })
{
if (ofd.ShowDialog() == DialogResult.OK)
{
foreach(string x in ofd.FileNames)
{
File1.Add(x);
}
for (int i = 0; i <= File1.Count; i++)
{
FileInfo fi = new FileInfo(ofd.FileName);
_inputParameter.Username = txtUserName.Text;
_inputParameter.Password = txtPassword.Text;
_inputParameter.Server = txtServer.Text;
_inputParameter.FileName = fi.Name;
_inputParameter.FullName = fi.FullName;
backgroundWorker.RunWorkerAsync(_inputParameter);
}
}
}
}

이렇게 하면,,,
이 BackgroundWorker는 현재 사용 중이며 동시에 여러 개의 작업을 실행할 수 없습니다.
라고 떠서 Backgroundworker.CancelAsync(); 속성 쓰는데 그래도 뭔가 먹히지를 않나봐요ㅠㅠ
반복문에서 계속 돌려고해서 그런거같은데,, 그리고 파일은 처음 선택한 하나만 업로드되네요..
사용자
썬콩콩            [2018-03-19]
Level 11
 [EXP.6/40]
backgroundWorker_DoWork 부분에서 보낼 파일 갯수만큼 for 돌려서

for 문안에서 ftp 세팅 ->ftp Write생성 -> 파일전송 -> 전송완료시 ftpClose 순으로 반복처리하시면 됩니다.

열고 전송 닫기 반복해주셔야 중복오류가 안나요 ~
사용자
타타            [2018-03-19]
Level 12
 [EXP.3/40]
위에 Dowork부분 댓글 확인부탁드립니다..ㅠ
사용자
썬콩콩            [2018-03-19]
Level 11
 [EXP.6/40]
strDataPathArr <== 이부분이 openfileDlg 사용해서 리스트 받아온거


for (int i = 0; i < strDataPathArr.Length; i++)
{
bRet = m_Ftp.FtpUploadCreate(strDataPathArr[i]); // ftp 생성 부분 (직접 만드셔야하는 부분이에요)
if (bRet) //생성완료시
{
do
{
if (!backgroundWorker.CancellationPending)
{
byteRead = m_Ftp.FtpWrite(); //(전송부분 직접만드셔야해요)
fRead += byteRead;
double percentage = fRead / fTotal * 100;
}
}
while (byteRead != 0);

m_nCount++ ; //byteRead 가 0이 되었으니 1개파일 전송완료 카운트 올려주기

if (m_nCount == strArr.Length) // 전체파일 전송완료되면 닫아준다
{
m_Ftp.FtpUploadClose(); //Ftp Close 직접 만드셔야해요
}
}
else
{
MessageBox.Show("Ftp 서버 접속 실패");
m_bCancel = true;
backgroundWorker.CancelAsync();
break;
}
}
태그로 엮인글
[C#.NET Q&A] C# 응용프로그램 윈도우XP -> 윈도우7으로 변경 후 멈춤 현상 발생합니다[1]  포도소주
[C#.NET Q&A] access db 날짜별 데이터 검색 질문드립니다.[1]+2  제스
[C#.NET Q&A] C# Socket 통신을 이용한 Data(헥사값) 전달 관련 질문[1]+1  HYL
[구인&교육정보] [부산] ERP 개발자분들 많은 지원 부탁드립니다.  노태
[C#.NET Q&A] c# 메모리가 끝없이 올라감  엘리엇
[C#.NET Q&A] c# 리스트에 있는 녀석들을 검색할수있을까요[3]  엘리엇
[C#.NET Q&A] C# 에서 Textbox 줄 갯수 제한 주는법이 뭔가요[1]+4  엘리엇
[C#.NET Q&A] C# 시리얼 통신 질문 드립니다.[1]+1 파일첨부 훈닷넷
[C#.NET Q&A] Visual Studio에서 mfc에서 .net  타타
[구인&교육정보] [ 기흥 / 6월초 ] C# JAVA 생산관리 업무시스템 [ 개발 / 중급 ]   한국정보데이터시스
글리스트
MSSQL 관련 정말 긴급한 질문이 있습니다. 고수님들 조언 부탁 드립니다 ㅠㅠ[1]+2  너는이미죽어있다
List <FileInfo> 질문[1]+1  타타
윈폼 이미지파일 출력 질문[2]+1  봉구스박보검
안녕하세요 선후배님들 WCF 기반 아키텍처 질문드립니다[2]  마레다
C# Null Reference log 관련 질문입니다.[1]  초보개뱔~
C# 데이터그리드뷰 관련 질문있습니다.[1]  민이2
어느게 더 효율적인 코딩인가요??[2]+1  빠라밤바
c# 윈폼 object배열[1]+2  이성민
메인폼안의 다른 컨트롤 중앙에 띄우기 질문드립니당..[1]+1  짱재
C# 깜박깜박 거리는 그래픽 문제에 대해 질문합니다.[2]+4  hhgya
 ★현재글->   C# 파일 여러개 업로드[1]+10  타타
웹서비스로 AccDB조회 하는 프로그램(윈도우7, 윈도우 10)  오하우하
ArrayList에 Add와 AddRange로 추가시 형변환 예외[1]+2  devker
문자셋( charset ) 설정하는방법좀 가르쳐주세요[1]+2  엿장수
DateTime형의 default를 Null로 잡는 방법이 있는건가요?[1]+2  굿모닝
c# User Control 을 사용하여 double click 이벤트를 만드는 방법이요[2]  Tube
안녕하세요 C# 어르신분들 listview 질문이 있어서 올립니다.[2]  C#꿈나무
[RE] 안녕하세요 C# 어르신분들 listview 질문이 있어서 올립니다. 파일첨부 훈스남훈남조으다
메인 폼에서 새로운 폼 열릴때. 질문드립니다.[3]+5  짱재
Ushort 음수값 저장[2]  훈스훈스훈스
MySqlConnection 트랜잭션 변수 왜 있나요?  부탁해스마일