PDA

View Full Version : انتقال فایل از روی یک آدرس اینترنتی به روی هاست خود



sara_aryanfar
سه شنبه 06 فروردین 1392, 21:42 عصر
با سلام خدمت دوستان می خواستم بدونم وقتی ما لینک مستقیم یک فایل رو داریم فایل حجیم هم باشه بین 30 تا 80 مگ چطوری اون رو به روی یک پوشه در سرور خود بیاریم یعنی از روی یک سایت دیگه منتقل کنیم به سایت خودمون

mehbod.rayaneh
سه شنبه 06 فروردین 1392, 23:18 عصر
سلام
از کدهایی ک برای انتقال فایل موجو هست میتونید استفاده کنید!
ولی چون به هاستتون فشار میاره ممکنه هاست بن بشه! یا ارور cpu usage بده!
بهتره از سرور مجازی استفاده کنید ... فایل را دانلود کنید رو سرور مجازی و بعد آپلود کنید روی هاستتون!
موفق باشید.

sara_aryanfar
سه شنبه 06 فروردین 1392, 23:48 عصر
خب من می خوام این کار بدون دخالت من انجام بشه یعنی من فقل مثلا 100 تا آدرس بدم و سایت خودش بیاد در بازه زمانی مشخص اون رو بیاره روی یک پوشه

fakhravari
چهارشنبه 07 فروردین 1392, 11:11 صبح
تا هاست جا داره اجازه کپی میده.
/// <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; }
}