PDA

View Full Version : سوال: کمک فوری : آپلود فایل در ویژوال استودیو 2010



Sadry_Royal
جمعه 29 آذر 1392, 13:19 عصر
سلام به همه دوستان

پروژه من طراحی یک سایت ورزشی با asp در ویژوال استودیو هست
قسمتی رو برای آپلود فایل های ویدیویی گذاشتم که هر کسی ویدیو آپلود کرد بره توی پوشه userfiles و پس از تایید مدیریت در قسمت کلیپ های سایت قرار بگیره
استادمون طریقه ی آپلود کردن رو درس نداده و من مجبور شدم توی نت دنبالش بگردم تا اینکه از روی ویدیوی آموزشی این کدها رو در یک button که با کلیک بر روی اون ویدیوی کاربر آپلود میشه نوشتم :

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
//1-get web path
string path = Server.MapPath(".") + "\\userfiles\\";
//2-get and check file extension
string[] validext = { ".mkv", ".avi", ".mpg", ".mov", ".swf", ".flv", ".dat", ".wmv", ".mp4" };
string ext = System.IO.Path.GetExtension(FileUpload2.PostedFile .FileName);
if (Array.IndexOf(validext, ext.ToLower()) > 0)
{
Response.Write("پسوند فایل غیر مجاز می باشد");
return;
}
//3-get and check file size
long size = FileUpload2.PostedFile.ContentLength;
size = size / 1024;
if (size > 50000)
{
Response.Write("حجم ویدئو حداکثر تا 50 مگابایت مجاز می باشد");
return;
}
//4-get file name
string filename = System.IO.Path.GetFileName(FileUpload2.PostedFile. FileName);
//5-check file exist and if (true) generate new name
while (System.IO.File.Exists(path + "\\" + filename))
filename = "1" + filename;
//6-save file to server
FileUpload2.PostedFile.SaveAs(path + filename);
Response.Write("ویدیو با موفقیت آپلود شد. پس از تایید مدیریت سایت در بخش ویدیوها قرار خواهد گرفت");
}
}

اما وقتی اجرا میکنم و یک پسوند غیر مجاز میدم can not file server میده
و وقتی هم که مجاز میدم باز هم همینجوری میشه
خواهش میکنم بگید باید چیکار کنم خیلی وقت ندارم و تا دو روز دیگه باید تحویل بدم.
و یه چیز دیگه چطوری میتونم اون پیام های پسوند غیرمجاز و فایل آپلود شد رو زیر کنترل fileUpload قرار بدم تا منظم بشه؟

ممنون از همتون

jaykob
جمعه 29 آذر 1392, 18:08 عصر
سلام

فایل با چه حجمی رو آپلود می کنید ؟ آیا حجم 50 مگابایت رو در web.config تعریف کردید ؟
پوشه userfiles رو بررسی کردید در آدرس داده شده وجود داشته باشه ؟

در صورتی که موارد بالا رو انجام دادید پروژه رو بزارید تا چک بشه

موفق باشید

vajihe11
جمعه 29 آذر 1392, 21:27 عصر
سلام به همه دوستان

پروژه من طراحی یک سایت ورزشی با asp در ویژوال استودیو هست
قسمتی رو برای آپلود فایل های ویدیویی گذاشتم که هر کسی ویدیو آپلود کرد بره توی پوشه userfiles و پس از تایید مدیریت در قسمت کلیپ های سایت قرار بگیره
استادمون طریقه ی آپلود کردن رو درس نداده و من مجبور شدم توی نت دنبالش بگردم تا اینکه از روی ویدیوی آموزشی این کدها رو در یک button که با کلیک بر روی اون ویدیوی کاربر آپلود میشه نوشتم :

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
//1-get web path
string path = Server.MapPath(".") + "\\userfiles\\";
//2-get and check file extension
string[] validext = { ".mkv", ".avi", ".mpg", ".mov", ".swf", ".flv", ".dat", ".wmv", ".mp4" };
string ext = System.IO.Path.GetExtension(FileUpload2.PostedFile .FileName);
if (Array.IndexOf(validext, ext.ToLower()) > 0)
{
Response.Write("پسوند فایل غیر مجاز می باشد");
return;
}
//3-get and check file size
long size = FileUpload2.PostedFile.ContentLength;
size = size / 1024;
if (size > 50000)
{
Response.Write("حجم ویدئو حداکثر تا 50 مگابایت مجاز می باشد");
return;
}
//4-get file name
string filename = System.IO.Path.GetFileName(FileUpload2.PostedFile. FileName);
//5-check file exist and if (true) generate new name
while (System.IO.File.Exists(path + "\\" + filename))
filename = "1" + filename;
//6-save file to server
FileUpload2.PostedFile.SaveAs(path + filename);
Response.Write("ویدیو با موفقیت آپلود شد. پس از تایید مدیریت سایت در بخش ویدیوها قرار خواهد گرفت");
}
}

اما وقتی اجرا میکنم و یک پسوند غیر مجاز میدم can not file server میده
و وقتی هم که مجاز میدم باز هم همینجوری میشه
خواهش میکنم بگید باید چیکار کنم خیلی وقت ندارم و تا دو روز دیگه باید تحویل بدم.
و یه چیز دیگه چطوری میتونم اون پیام های پسوند غیرمجاز و فایل آپلود شد رو زیر کنترل fileUpload قرار بدم تا منظم بشه؟

ممنون از همتون

توی webconfig بااید بگی حداکثر اندازه چقدر باشه.یه خط هست...

Sadry_Royal
شنبه 30 آذر 1392, 10:13 صبح
سلام

فایل با چه حجمی رو آپلود می کنید ؟ آیا حجم 50 مگابایت رو در web.config تعریف کردید ؟
پوشه userfiles رو بررسی کردید در آدرس داده شده وجود داشته باشه ؟

در صورتی که موارد بالا رو انجام دادید پروژه رو بزارید تا چک بشه

موفق باشید



سلام دوست گرامی. حجمش تا 50 مگ باشه و بیشتر اگه بود پیام بده که غیرمجازه
بله userfiles رو به درستی بررسی کردم
ولی در web.config بلد نیستم باید چیکار کنم. یه سرچ دیروز توی گوگل زدم یکی راهنمایی کرده بود اما کدی که داده بود توی web.config وجود نداشت

Sadry_Royal
شنبه 30 آذر 1392, 10:14 صبح
توی webconfig بااید بگی حداکثر اندازه چقدر باشه.یه خط هست...



سلام. یکی توی وبلاگش نوشته بود که باید توی web.config بنویسی ولی توضیحی نداده بود که چطوری
میشه اگه اون کد رو میدونید بگید؟

jaykob
شنبه 30 آذر 1392, 10:31 صبح
سلام دوست گرامی. حجمش تا 50 مگ باشه و بیشتر اگه بود پیام بده که غیرمجازه
بله userfiles رو به درستی بررسی کردم
ولی در web.config بلد نیستم باید چیکار کنم. یه سرچ دیروز توی گوگل زدم یکی راهنمایی کرده بود اما کدی که داده بود توی web.config وجود نداشت

سلام

چون داخل web.config تعریف نکردید به اون قطعه کد می رسه فایل مثلا 20 مگابایت باشه از نظر کد شما مشکلی نداره ولی از نظر وب سرویس حداکثر حجم 4 مگابایت است . شما می تونید به شکل زیر حجم آپلود رو به 2 گیگابایت تغییر بدید البته این واسه iis7 هست اگر از ورژن های پایین تر استفاده می کنید بفرمایید که بگم چیکار کنید :


<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648" />
</requestFiltering>
</security>
</system.webServer>