Upload and read files from the FTP server using x++.
The file name should not contain spaces and a colon(":").
Upload file:
static void sendFileToFTP(System.IO.Stream _stream) { System.Text.Encoding getUTF8; System.Byte[] bytes; System.Object request,response,credential; System.Net.FtpWebRequest ftpRequest; System.IO.Stream requestStream; System.Net.FtpWebResponse ftpResponse; Str1260 ftpFileName = "FTP server" + @"/" + "filename.csv"; System.IO.StreamReader reader; System.Char[] chars; /* If file to be created with current data and time we can use this commented code. str timeinstr, executedate; //removed spaces and colons because of FTP protocol voilation and throws error timeinstr = strRem(time2str(timeNow(),DateSeparator::Dot,DateSeparator::Dot)," "); //part of filename executedate = date2Str(today(),213, DateDay::Digits2, DateSeparator::Hyphen, DateMonth::Digits2, DateSeparator::Hyphen, DateYear::Digits4); executedate = executedate + "_" + timeinstr + ".CSV"; */ //new InteropPermission(InteropKind::ClrInterop).assert(); // Convert protect password to normal. //cryptoblob2str(WinAPIServer::cryptUnProtectData('Protected Password')) _stream.Position = 0; // Encode reader = new System.IO.StreamReader(_stream); getUTF8 = System.Text.Encoding::get_UTF8(); bytes = getUTF8.GetBytes(reader.ReadToEnd()); // Creating request request = System.Net.WebRequest::Create(new System.Uri(ftpFileName)); ftpRequest = request; // Creating credentials credential = new System.Net.NetworkCredential("username", "password"); // assign parameters to reuest ftpRequest.set_Credentials(credential); ftpRequest.set_ContentLength(bytes.get_Length()); ftpRequest.set_Method("STOR"); ftpRequest.set_Proxy(null); // Write file to stream requestStream = ftpRequest.GetRequestStream(); requestStream.Write(bytes,0,bytes.get_Length()); requestStream.Close(); // Get respose response = ftpRequest.GetResponse(); ftpResponse = response; info('Uploded.'); }
Read file:
public static void ReadFileFromFTP(Str1260 _fileName) { Str1260 readingPath = 'FTP server'; System.Object ftpRequest; System.Net.FtpWebRequest request; System.IO.StreamReader reader; System.Net.NetworkCredential credential; System.Net.FtpWebResponse response; try { // Convert protect password to normal. //cryptoblob2str(WinAPIServer::cryptUnProtectData('Protected Password')) // Create request ftpRequest = System.Net.WebRequest::Create(@readingPath + @"/" + _fileName); request = ftpRequest; credential = new System.Net.NetworkCredential('username', 'password'); request.set_Credentials(credential); response = request.GetResponse(); reader = new System.IO.StreamReader(response.GetResponseStream()); str text = reader.ReadToEnd(); } catch { error("Error"); } }
Keep Daxing!!
No comments:
Post a Comment