Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FtpConn
- {
- public string UploadCms(string address, string username, string password, string host, bool userftp, string guid)
- {
- CreateFileUID(guid);
- string location;
- if (userftp)
- {
- location = address + "/simplecms/";
- host = host + "/simplecms/";
- }
- else
- {
- location = address + "/simplecms" + guid + "/";
- host = host + "/simplecms" + guid + "/";
- }
- FtpWebRequest request = (FtpWebRequest)WebRequest.Create(location);
- request.Credentials = new NetworkCredential(username, password);
- //request.Timeout = -1;
- request.UsePassive = true;
- request.UseBinary = true;
- request.Timeout = 1000000000;
- request.KeepAlive = false;
- request.ReadWriteTimeout = 1000000000;
- request.Method = WebRequestMethods.Ftp.MakeDirectory;
- using (var resp = (FtpWebResponse)request.GetResponse())
- {
- Console.WriteLine(resp.StatusCode);
- }
- string cmsFolder = "wwwroot/dist/";
- string[] cmsFiles = Directory.GetFiles(cmsFolder);
- foreach (string file in cmsFiles)
- {
- string path = Path.GetFullPath(file);
- string name = Path.GetFileName(file);
- UploadFile(username, password, location, path, name);
- }
- string[] staticFiles = Directory.GetDirectories(cmsFolder);
- string[] subs = Directory.GetDirectories(cmsFolder + "static/");
- foreach (string file in staticFiles)
- {
- CreateDirectory(username, password, location + "/" + Path.GetFileName(file));
- }
- foreach (string folder in subs)
- {
- CreateDirectory(username, password, location + "/static/" + Path.GetFileName(folder));
- foreach (string subfile in Directory.GetFiles(folder))
- {
- string path = Path.GetFullPath(subfile);
- string name = Path.GetFileName(subfile);
- UploadFile(username, password, location + "/static/" + Path.GetFileName(folder) + "/" + Path.GetFileName(subfile), path, "");
- }
- }
- return host;
- }
- private void UploadFile(string username, string password, string location, string filePath, string fileName)
- {
- FtpWebRequest request = (FtpWebRequest)WebRequest.Create(location + fileName);
- request.Credentials = new NetworkCredential(username, password);
- //request.Timeout = -1;
- request.UsePassive = true;
- request.UseBinary = true;
- request.Timeout = 1000000000;
- request.KeepAlive = false;
- request.ReadWriteTimeout = 1000000000;
- request.Method = WebRequestMethods.Ftp.UploadFile;
- FileStream stream = File.OpenRead(filePath);
- byte[] buffer = new byte[stream.Length];
- stream.Read(buffer, 0, buffer.Length);
- stream.Close();
- Stream reqStream = request.GetRequestStream();
- reqStream.Write(buffer, 0, buffer.Length);
- reqStream.Close();
- }
- private void CreateDirectory(string username, string password, string newDirectory)
- {
- try
- {
- FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(newDirectory);
- ftpRequest.Credentials = new NetworkCredential(username, password);
- //ftpRequest.Timeout = -1;
- ftpRequest.UseBinary = true;
- ftpRequest.UsePassive = true;
- ftpRequest.KeepAlive = false;
- ftpRequest.Method = WebRequestMethods.Ftp.MakeDirectory;
- FtpWebResponse ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
- ftpResponse.Close();
- ftpRequest = null;
- }
- catch (Exception ex) { Console.WriteLine(ex); }
- return;
- }
- private void CreateFileUID(string uid)
- {
- string folderName = "wwwroot/dist/";
- string[] txtList = Directory.GetFiles(folderName, "*.txt");
- foreach (string f in txtList)
- {
- File.Delete(f);
- }
- string fileName = "uid.txt";
- string pathString = Path.Combine(folderName, fileName);
- using (FileStream fs = File.Create(pathString))
- {
- byte[] SimpleCmsUID = new UTF8Encoding(true).GetBytes(uid);
- fs.Write(SimpleCmsUID, 0, SimpleCmsUID.Length);
- }
- }
- }
Add Comment
Please, Sign In to add comment