Guest User

Untitled

a guest
Dec 18th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1. public class FtpConn
  2. {
  3.  
  4. public string UploadCms(string address, string username, string password, string host, bool userftp, string guid)
  5. {
  6. CreateFileUID(guid);
  7.  
  8. string location;
  9. if (userftp)
  10. {
  11. location = address + "/simplecms/";
  12. host = host + "/simplecms/";
  13. }
  14. else
  15. {
  16. location = address + "/simplecms" + guid + "/";
  17. host = host + "/simplecms" + guid + "/";
  18. }
  19.  
  20. FtpWebRequest request = (FtpWebRequest)WebRequest.Create(location);
  21. request.Credentials = new NetworkCredential(username, password);
  22. //request.Timeout = -1;
  23. request.UsePassive = true;
  24. request.UseBinary = true;
  25. request.Timeout = 1000000000;
  26. request.KeepAlive = false;
  27. request.ReadWriteTimeout = 1000000000;
  28. request.Method = WebRequestMethods.Ftp.MakeDirectory;
  29.  
  30. using (var resp = (FtpWebResponse)request.GetResponse())
  31. {
  32. Console.WriteLine(resp.StatusCode);
  33.  
  34. }
  35.  
  36. string cmsFolder = "wwwroot/dist/";
  37. string[] cmsFiles = Directory.GetFiles(cmsFolder);
  38. foreach (string file in cmsFiles)
  39. {
  40. string path = Path.GetFullPath(file);
  41. string name = Path.GetFileName(file);
  42. UploadFile(username, password, location, path, name);
  43. }
  44.  
  45. string[] staticFiles = Directory.GetDirectories(cmsFolder);
  46. string[] subs = Directory.GetDirectories(cmsFolder + "static/");
  47. foreach (string file in staticFiles)
  48. {
  49. CreateDirectory(username, password, location + "/" + Path.GetFileName(file));
  50. }
  51.  
  52. foreach (string folder in subs)
  53. {
  54. CreateDirectory(username, password, location + "/static/" + Path.GetFileName(folder));
  55.  
  56. foreach (string subfile in Directory.GetFiles(folder))
  57. {
  58. string path = Path.GetFullPath(subfile);
  59. string name = Path.GetFileName(subfile);
  60. UploadFile(username, password, location + "/static/" + Path.GetFileName(folder) + "/" + Path.GetFileName(subfile), path, "");
  61. }
  62.  
  63. }
  64.  
  65. return host;
  66. }
  67.  
  68. private void UploadFile(string username, string password, string location, string filePath, string fileName)
  69. {
  70.  
  71.  
  72. FtpWebRequest request = (FtpWebRequest)WebRequest.Create(location + fileName);
  73. request.Credentials = new NetworkCredential(username, password);
  74.  
  75. //request.Timeout = -1;
  76. request.UsePassive = true;
  77. request.UseBinary = true;
  78. request.Timeout = 1000000000;
  79. request.KeepAlive = false;
  80. request.ReadWriteTimeout = 1000000000;
  81. request.Method = WebRequestMethods.Ftp.UploadFile;
  82.  
  83. FileStream stream = File.OpenRead(filePath);
  84. byte[] buffer = new byte[stream.Length];
  85. stream.Read(buffer, 0, buffer.Length);
  86. stream.Close();
  87.  
  88. Stream reqStream = request.GetRequestStream();
  89. reqStream.Write(buffer, 0, buffer.Length);
  90. reqStream.Close();
  91. }
  92.  
  93. private void CreateDirectory(string username, string password, string newDirectory)
  94. {
  95. try
  96. {
  97. FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(newDirectory);
  98. ftpRequest.Credentials = new NetworkCredential(username, password);
  99. //ftpRequest.Timeout = -1;
  100. ftpRequest.UseBinary = true;
  101. ftpRequest.UsePassive = true;
  102. ftpRequest.KeepAlive = false;
  103. ftpRequest.Method = WebRequestMethods.Ftp.MakeDirectory;
  104. FtpWebResponse ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
  105. ftpResponse.Close();
  106. ftpRequest = null;
  107. }
  108. catch (Exception ex) { Console.WriteLine(ex); }
  109. return;
  110. }
  111.  
  112. private void CreateFileUID(string uid)
  113. {
  114. string folderName = "wwwroot/dist/";
  115. string[] txtList = Directory.GetFiles(folderName, "*.txt");
  116. foreach (string f in txtList)
  117. {
  118. File.Delete(f);
  119. }
  120.  
  121. string fileName = "uid.txt";
  122. string pathString = Path.Combine(folderName, fileName);
  123. using (FileStream fs = File.Create(pathString))
  124. {
  125. byte[] SimpleCmsUID = new UTF8Encoding(true).GetBytes(uid);
  126. fs.Write(SimpleCmsUID, 0, SimpleCmsUID.Length);
  127. }
  128. }
  129.  
  130. }
Add Comment
Please, Sign In to add comment