سلام من یک پروژه asp.net mvc دارم که به دلیل زیاد شدن حجم فیلم های سایت مجبور به تهیه یک هاست دانلود cpanel شدم حالا برای آپلود فایل ها بر روی هاست دانلود به مشکل خوردم ممنون میشم راهنمایی کنین
WebClient wc = new WebClient(); NetworkCredential nc = new NetworkCredential("username", "pass"); Uri remoteUri = new Uri(@"\\my-server-ip\Content\movie\ClassOnline\" + Guid.NewGuid() + "-" + Path.GetExtension(file.FileName)); wc.Credentials = nc; file.SaveAs(HttpContext.Current.Server.MapPath("~/Content/movie/" + file.FileName)); byte[] result = wc.UploadFile(remoteUri, HttpContext.Current.Server.MapPath("~/Content/movie/" + file.FileName));
اما متن خطا که یادم رفت The network path was not found
راه حل مشکلم رو پیدا کردم امیدوارم به درد بقیه هم بخوره
برای اینکار شما باید یک حساب ftp بر روی هاست دانلود که معمولا سی پنل هست درست کنید و مشخصاتشو بهتره در فایل web.config ذخیره کنین به عنوان مثال
<appSettings> <add key="ftp_user" value="ftp_username"/> <add key="ftp_pass" value="ftp_pass"/> <add key="ftp_server" value="ftp_sever"/> </appSettings>
متد اصلی برای آپلود فایلها
var ftpUserName = ConfigurationManager.AppSettings["ftp_user"]; var ftpPass = ConfigurationManager.AppSettings["ftp_pass"]; var request = (FtpWebRequest)WebRequest.Create(new Uri(ftpFilePath)); request.Method = WebRequestMethods.Ftp.UploadFile; request.Credentials = new NetworkCredential(ftpUserName, ftpPass); request.Timeout = 10000000; request.UseBinary = true; request.UsePassive = true; request.KeepAlive = false; request.ConnectionGroupName = "group"; using (FileStream fs = File.OpenRead(filePath)) { byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Close(); Stream requestStream = request.GetRequestStream(); requestStream.Write(buffer, 0, buffer.Length); //requestStream.Flush(); requestStream.Close(); }
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)