그리고 여기에 내가 파일을 다운로드하고 업로드하기 위해 만든 두 가지 기능이 있습니다. 파일 업로드 /// 사용자 이름과 암호와 지정된 FTP URL에 파일을 업로드 및 업로드 디렉토리 FTP 서버의 하위 폴더 ////기본 FtpUrlFTP 서버의 업로드////로컬 파일 이름 FTP 서버////사용자 이름 FTP 서버///사용자 암호의 ////사용자 이름//선택]서버 공용 정적 업로드 파일에서 /// 상태 문자열을 지정 하는 경우 하위 폴더 를 지정 합니다. 문자열 파일 이름, 문자열 사용자 이름, 문자열 암호, 문자열 UploadDirectory=””) { 문자열 PureFileName = 새 FileInfo (파일 이름). 이름; 문자열 업로드Url = String.Format(“{0}{1}/{2}”, FtpUrl, 업로드 디렉터리, PureFileName); FtpWebRequest req = (FtpWebRequest)FtpWebRequest.Create(업로드Url); Req. 프록시 = null; Req. 메서드 = 웹 요청 메서드.Ftp.UploadFile; Req. 자격 증명 = 새 네트워크 자격 증명(사용자 이름, 암호); Req. UseBinary = true; Req. 사용수심 = true; 바이트[] 데이터 = File.ReadAllBytes(파일이름); Req. 콘텐츠길이 = 데이터. 길이; 스트림 = req. GetRequestStream(); 스트림.
쓰기(데이터, 0, 데이터) 길이); 스트림. 닫기(); FtpWebResponse res = (FtpWebResponse) req. GetResponse(); 반환 res. 상태 설명; } FTP 서버에서 파일 다운로드 /// / / / FTP 서버의 ///기본 URL을 다운로드한 다음 파일 이름이 루트에 있는 경우 “subdir1/subdir2/filename.ext”와 같은 사용 중일 경우에만 FileName을 작성합니다. ///FTP 서버///암호 FTP 서버///Folderpath 서버 공개 정적 문자열 DownloadFile(문자열 FtpUrl, 문자열 FileNameToDownload, 문자열 사용자 이름, 문자열 암호, 문자열 tempDirPath) { 문자열 응답 설명 = “;; 문자열 PureFileName = 새 FileInfo(파일네임토다운로드)를 참조하십시오. 이름; 문자열 다운로드파일패스 = 템디르패스+”/”+퓨어파일네임; 문자열 downloadUrl = String.Format(“{0}/{1}”, FtpUrl, FileNameToDownload); FtpWebRequest req = (FtpWebRequest)FtpWebRequest.Create(다운로드Url); Req. 메서드 = 웹 요청 메서드.Ftp.다운로드 파일; Req. 자격 증명 = 새 네트워크 자격 증명(사용자 이름, 암호); Req. UseBinary = true; Req. 프록시 = null; 시도 { FtpWebResponse 응답 = (FtpWebResponse)req.
GetResponse(); 스트림 = 응답. GetResponseStream(); 바이트[] 버퍼 = 새 바이트[2048]; 파일 스트림 fs = 새 파일 스트림 (다운로드 된 FilePath, FileMode.Create); int 읽기 Count = 스트림. 읽기(버퍼, 0, 버퍼) 길이); 동안 (읽기 카운트 > 0) { fs. 쓰기(버퍼, 0, 읽기 카운트); 읽기 Count = 스트림. 읽기(버퍼, 0, 버퍼) 길이); } 응답 설명 = 응답. 상태 설명; Fs. 닫기(); 스트림. 닫기(); } 캐치(예외 e) { Console.WriteLine(예: 메시지); } 반환 응답 설명; } 가장 먼저 살펴볼 것은 서버에 대한 연결을 설정하고 파일 목록을 검색하는 것입니다. 압축된 파일에서는 작동하지 않습니다. http://stackoverflow.com/questions/16495735/zip-file-is-getting-corrupted-after-uploaded-to-server-using-c-sharp 참조하십시오. 그렇지 않으면, 당신의 기여에 감사드립니다. 그것은 매우 도움이 되었다! 나는 다음 사건을 의미한다.
some1이 ftp에 큰 파일을 업로드하고이 순간에 다운로드를 시작하면. 이렇게 하면 전체 파일이 수신되지 않습니다. 여기에서 파일을 다운로드하고 FTP 서버에 업로드하는 코드를 제시합니다. 우리는 FtpWebRequest 및 FtpWebResponse 클래스를 사용합니다.
Recent Comments