PDA

View Full Version : آپلود کردن فایل با امکان محدود کردن کاربر



bardia goharbin
یک شنبه 15 بهمن 1385, 21:28 عصر
من از کنترل FileUpload استفاده میکنم. چطور میتونم کاربر رو مجبور کنم که مثلا فقط فایلهای JPG رو بتونه ارسال کنه.

Behrouz_Rad
یک شنبه 15 بهمن 1385, 21:50 عصر
پسوند فایل آپلود شده رو بررسی کن و در صورتی که با پسوند مورد نظرت همخوانی نداشت، فایل رو ذخیره نکن و به کاربر پیغام دلخواهی بده...

موفق باشید.

bardia goharbin
یک شنبه 15 بهمن 1385, 22:00 عصر
ممنونم.
راهی نداره که پنجره انتخاب فایل که باز میشه فقط فایلهای JPG قابل انتخاب باشه؟
خوب اگه راهى نداره من همون پسوندش رو چک میکنم.

Behrouz_Rad
یک شنبه 15 بهمن 1385, 22:57 عصر
راهی نداره که پنجره انتخاب فایل که باز میشه فقط فایلهای JPG قابل انتخاب باشه؟
خیر نداره!


خوب اگه راهى نداره من همون پسوندش رو چک میکنم.
کار بسیار خوبی می کنی.

موفق باشی.

Pioneers
دوشنبه 16 بهمن 1385, 06:47 صبح
راه داره
کافیه با javascript چک کنی که اگه jpg نبود به کاربر پیام داده بشه و ارسال هم نشه!

Behrouz_Rad
دوشنبه 16 بهمن 1385, 08:11 صبح
راه داره
کافیه با javascript چک کنی که اگه jpg نبود به کاربر پیام داده بشه و ارسال هم نشه!
فکر نمی کنم بنده هم چیزی غیر از این گفته باشم!

هر چند که اصولا تعیین اعتبار همیشه در دو سمت کلاینت و سرور صورت میگیره.

Pioneers
شنبه 21 بهمن 1385, 12:52 عصر
نخیر
اونجور که شما نوشته بودی برداشت میشه که سمت سرور چک کنیم. ولی قتی به javascript اشاره کنی یعنی سمت سرور

Pioneers
شنبه 21 بهمن 1385, 12:54 عصر
ببخشید سمت کلاینت

eshaghi
یک شنبه 27 اسفند 1385, 16:58 عصر
If Right(op.PostedFile.FileName, 4) <> ".jpg" Then
Label11.Text = "وارد کنید.jpg فایل "
ElseIf op.PostedFile.FileName <> "" Then
ad = Server.MapPath(".\\img\")
up = ad + "/img/" + op.PostedFile.FileName
slash = InStrRev(op.PostedFile.FileName, "\")
filename = Right(op.PostedFile.FileName, Len(op.PostedFile.FileName) - slash)
op.PostedFile.SaveAs("../img/" + filename)
ثدی هب

mohssen_mz
دوشنبه 28 اسفند 1385, 10:03 صبح
لطفا" کدهاتونو تو تگ کد بزارین
البته ستاره ها رو بردار
[c*o*d*e]
[c*o*d*e/]

MehranZand
دوشنبه 28 اسفند 1385, 11:40 صبح
من از کنترل FileUpload استفاده میکنم. چطور میتونم کاربر رو مجبور کنم که مثلا فقط فایلهای JPG رو بتونه ارسال کنه.

با استفاده از فضا نام System.IO و کد زیر امکان پذیره!


If Path.GetExtension(FileUpload1.FileName).ToLower = ".jpg"Then

کدهایی برای ذخیره فایل


Else
Response.Write("only jpg")
EndIf

در اینجا از لیبل استفاده کنی بهتره!

موفق باشی

manager
دوشنبه 28 اسفند 1385, 13:21 عصر
برای ارائه امکان آپلود فایل بهتره یک User Control یا یک Custom Control ایجاد کنید و با ارسال پارامترهائی به این کنترل ها، وظیفه آپلود فایل با اعمال محدودیت ها را به این کنترل ها بسپارید.
در ساده ترین حالت شما می توانید 3 نوع محدودیت با استفاده از این کنترل ها اعمال کنید :
1- نوع فایل (سمت کلاینت) 2- حجم فایل (سمت سرور) 3- تعداد فایل (سمت سرور یا کلاینت)

چون این تاپیک برای اعمال محدودیت بر روی نوع فایل ایجاد شده است من فقط راه اول را بصورت خیلی فشرده و ساده آموزش می دم :

http://i14.tinypic.com/451dxxl.jpg


برای اعمال محدودیت بر روی نوع فایل به راحتی می تونید از یک CustomValidator استفاده کنید. کد زیر یک CustomValidator ایجاد می کند که این عمل را برای شما انجام می دهد:



<asp:CustomValidator ID="cvFUChecker" runat="server" ClientValidationFunction="fu_checker" ErrorMessage="نوع فایل معتبر نمی باشد." ControlToValidate="fuFileUpload" CssClass="NormalText" SetFocusOnError="True" Display="Dynamic"></asp:CustomValidator>


و کد فانکشن جاوااسکریپت fu_checker به صورت زیر می باشد :



<script language=""javascript"" type=""text/javascript"">

function {1}_fu_checker(source,args)

{

var fileType = args.Value;

var hfuft = document.getElementById(""{0}"");

var strtypes = ""all"";



if(hfuft!=null)

{

strtypes = hfuft.value;

}

var types = strtypes.split(';');



var lastIndexOfDot = -1;

for(var i = fileType.length ; i >= 0 && lastIndexOfDot < 0; --i)

lastIndexOfDot = fileType.indexOf('.',i);

var ext = fileType.substr(lastIndexOfDot+1);

var isValid=false;

for(var i = 0 ; i < types.length && !isValid; ++i )

{

if(ext.toLowerCase()==types[i].toLowerCase() ||types[i].toLowerCase()==""all"")

isValid=true;

}

args.IsValid=isValid;

return isValid;

}

</script>

که در این کد {0} برابر ID یک HtmlInputHidden یا همان فیلد پنهان می باشد. شما می توانید مقادیر مورد نیاز خود را که به صورت مثلا pdf;chm;doc می باشد را داخل این HtmlInputHidden بریزید و بقیه کار را به CustomValidator بسپارید.
و حاصل کار :

http://i15.tinypic.com/4bqek2g.jpg

emdadgar2
دوشنبه 13 فروردین 1386, 15:24 عصر
البته دوستان همیشه کنترل این دست اطلاعات و موضوعات را علاوه بر طرف کاربر در طرف سرور هم انجام دهید تا امنیت سیستم شما به مخاطره نیفتد.