با سلام خدمت دوستان می خواستم بدونم وقتی ما لینک مستقیم یک فایل رو داریم فایل حجیم هم باشه بین 30 تا 80 مگ چطوری اون رو به روی یک پوشه در سرور خود بیاریم یعنی از روی یک سایت دیگه منتقل کنیم به سایت خودمون
Printable View
با سلام خدمت دوستان می خواستم بدونم وقتی ما لینک مستقیم یک فایل رو داریم فایل حجیم هم باشه بین 30 تا 80 مگ چطوری اون رو به روی یک پوشه در سرور خود بیاریم یعنی از روی یک سایت دیگه منتقل کنیم به سایت خودمون
سلام
از کدهایی ک برای انتقال فایل موجو هست میتونید استفاده کنید!
ولی چون به هاستتون فشار میاره ممکنه هاست بن بشه! یا ارور cpu usage بده!
بهتره از سرور مجازی استفاده کنید ... فایل را دانلود کنید رو سرور مجازی و بعد آپلود کنید روی هاستتون!
موفق باشید.
خب من می خوام این کار بدون دخالت من انجام بشه یعنی من فقل مثلا 100 تا آدرس بدم و سایت خودش بیاد در بازه زمانی مشخص اون رو بیاره روی یک پوشه
تا هاست جا داره اجازه کپی میده.
/// <summary>
/// دریافت فایل از روی آدرس اینترنتی
/// </summary>
/// <param name="MapPath">نام فولدر / نام فولدر</param>
/// <param name="Url">آدرس اینترنتی</param>
/// <returns>خروجی از نوع Bit</returns>
public static bool SaveFileFromUrl(string MapPath, string Url, int FileSize = 500, string FileName = "")
{
string NewAdress = "";
try
{
if (MapPath != ".")
{
if (!Directory.Exists(HttpContext.Current.Server.MapP ath("~/" + MapPath + "/")))
{
Directory.CreateDirectory(System.Web.HttpContext.C urrent.Server.MapPath("~/" + MapPath + "/"));
NewAdress = "~/" + MapPath + "/";
}
else
{ NewAdress = "~/" + MapPath + "/"; }
}
else { NewAdress = "~/"; }
WebClient wc = new WebClient();
string[] Arry = Url.Split('/');
System.IO.Stream stream = wc.OpenRead(Url);
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(stream);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Bmp);
if (bmp.Height > 500) { return false; }
if (bmp.Width > 800) { return false; }
if ((int)ms.ToArray().Length < FileSize) { return false; }
if (FileName.Length > 0)
{ wc.DownloadFile(Url, HttpContext.Current.Server.MapPath(NewAdress + FileName + Path.GetExtension(Arry[Arry.Length - 1]))); }
else
{ wc.DownloadFile(Url, HttpContext.Current.Server.MapPath(NewAdress + Arry[Arry.Length - 1])); }
return true;
}
catch { return false; }
}