PDA

View Full Version : يه فايل آپلود ايجکسي مناسب



bftarane
یک شنبه 19 آذر 1391, 20:31 عصر
سلام.
من مي خوام امکان آپلود عکس به صورت ايجکسي (صفحه رفرش نشه) رو داشته باشم.
از Asyncfileupload استفاده کرده بودم و کارا به خوبي پيش رفته بود تا اينکه رفتم سراغ وليديشن (پسوند فايل فقط jpg و...)
امروز خيلي با اين قضيه سروکله زدم ولي آخرشم نتيجه نگرفتم
لينک زير به خوبي اين کار رو انجام داده با جاواسکريپت
http://www.aspsnippets.com/Articles/ASPNet-FileUpload-File-Extension-Validation.aspx
ولي آخرش به اين نتيجه رسيدم چون من با .net 4 کار مي کنم اين وليديشن انجام نمي گيره.

حالا سوالم اينه اگه يه فايل آپلود خوب استفاده کرديد که وليديشن به راحتي باهاش صورت مي گيره و اگه بخواهيم resize هم انجام بديم براي عکس بشه اين کار رو کرد لطفاً معرفي کنيد.

من در مورد Uplodify هم مطالبي ديدم ولي مثل اينکه احتياج به نصب بودن فلش داره و ديگه اينکه نمي خوام کلي هم وقت سر اون بزارم آخرشم معلوم نباشه به مشکل مي خورم يا نه.
خواهش مي کنم اگه امتحان کرديد و نتيجه براي خودتون مساعد بوده من رو راهنمايي کنيد.

bftarane
دوشنبه 20 آذر 1391, 10:08 صبح
بچه ها لطفاً تجربه هاتون رو در اين زمينه بگيد. حتماً خيليا از فايل آپلود ايجکسي تا حالا استفاده کردن. و وقتي حرف از آپلود فايل در ميون باشه صد در صد مسئله وليديشن تايپ و سايز هم باهاش همراهه.

rezaei_y
دوشنبه 20 آذر 1391, 12:00 عصر
یه نگاهی به این بندازید داخل پروژه از فایل آپلود ایجکسی استفاده شده (http://barnamenevis.org/showthread.php?371381-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D8%AF-%D8%A7%D8%B3%D9%84%D8%A7%DB%8C%D8%AF%D8%B1-%D8%AF%D8%A7%DB%8C%D9%86%D8%A7%D9%85%DB%8C%DA%A9)

hamed_hossani
سه شنبه 21 آذر 1391, 10:36 صبح
اپلودر jQuery File Upload Plugin در صفحه وب(انتخاب چندین فایل در یک browse)
http://barnamenevis.org/showthread.php?371169-%D8%A7%D9%BE%D9%84%D9%88%D8%AF%D8%B1-jQuery-File-Upload-Plugin-%D8%AF%D8%B1-%D8%B5%D9%81%D8%AD%D9%87-%D9%88%D8%A8(%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%DA%86%D9%86%D8%AF%DB%8C%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%DB%8C%DA%A9-browse)&p=1638550#post1638550

Preview images:
A preview of image files can be displayed before uploading with browsers supporting the required JS API
http://upcity.ir/images/76133153700876978746.gif

bftarane
سه شنبه 21 آذر 1391, 11:04 صبح
اينکه اسم فايل يکتا باشه رو هم انعطاف پذيري داره روش اعمال بشه؟

hamed_hossani
سه شنبه 21 آذر 1391, 12:13 عصر
// Upload entire file
private void UploadWholeFile (HttpContext context, List<FilesStatus> statuses) {
for (int i = 0; i < context.Request.Files.Count; i++) {
var file = context.Request.Files[i];
file.SaveAs(StorageRoot + Path.GetFileName(file.FileName));

string fullName = Path.GetFileName(file.FileName);
statuses.Add(new FilesStatus(fullName, file.ContentLength));
}
}
تو تنظیماتش فکر نکنم داشته باشه
می تونید در بالا تغییر بدید

bftarane
سه شنبه 21 آذر 1391, 18:00 عصر
من هرچي گشتم نتونستم يه Documentation پيدا کنم براي اين فايل آپلود.
مثلاً من مي خوام به جز jpg پسوندهاي gif و png هم داشته باشم. به چه نحو اين دو تا پسوند رو بايد اضافه کنم؟

context.Response.ContentType = "image/jpg";

hamed_hossani
شنبه 25 آذر 1391, 16:11 عصر
فکر کنم این قسمتی که شما دیدید ربطی به فیلت ر بندی نوع نداشته باشه

bftarane
سه شنبه 28 آذر 1391, 17:51 عصر
سلام به همگي.
آقاي Hossani
بعد از کلي دور قمري زدن به اين نتيجه رسيدم اين آپلودري که شما معرفي کرديد بهترين آپلودري هست که ميشه استفاده کرد.
از اين لينک فايل نمونه رو دانلود کردم
https://github.com/i-e-b/jQueryFileUpload.Net/downloads

طبق دستورالعمل شما پيش رفتم و خوشبختانه فايل آپلود ميشه

حالا مسئله اي که وجود داره اينه که
اين مثال حاوي فايلهاي js به صورت زير هست
application.js
jquery.fileupload-ui.js
jquery.fileupload.js
jquery.iframe-transport.js
..................
من با تغيير
$('#fileupload').fileupload();
در application.js
به
$('#fileupload').fileupload({
maxFileSize: 1000000,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
});
تونستم Type و size رو محدود کنم
منبعم هم اين لينک بوده
http://stackoverflow.com/questions/11209924/jquery-fileupload-how-to-stop-pause-upload
ولي متأسفانه با IE8 امتحان کردم
تايپ رو محدود مي کنه ولي سايز رو نه ولي فايرفاکس جواب ميده.
آيا به راه حل اين موضوع برخورد کرديد؟


برنامه نويساي ديگه هم اگه تجربه اي در اين زمينه دارن خوشحال ميشم مشارکت کنن.

bftarane
سه شنبه 28 آذر 1391, 18:43 عصر
لطفاً اين سوالات رو هم هر کس بلده جواب بده:
1. چطور پيش نمايش عکس رو داشته باشم با اين آپلودر؟
2. چطور کنترل کنيم مثلاً از عرض و ارتفاع 200*300 بزرگتر نباشه عکس مثلاً 400*500 نباشه؟
3. روش ايجاد Tubmnail چطوريه با اين آپلودر؟

يه سوال ديگه هم داشتم اينکه چطور نام فايل آپلود شده رو بگيريم تا بتونيم در ديتابيس اين نام رو ثبت کنيم؟اين مورد رو بايد برم امتحان کنم اگه نتونستم انجام بدم ميام مي پرسم.

hamed_hossani
سه شنبه 28 آذر 1391, 18:56 عصر
چطور نام فايل آپلود شده رو بگيريم تا بتونيم در ديتابيس اين نام رو ثبت کنيم
سلام
تو فایل FileTransferHandler.ashx.cs
متد
// Upload entire file
private void UploadWholeFile
خط file.SaveAs( را دستکاری کن.

bftarane
سه شنبه 28 آذر 1391, 19:40 عصر
مسئله درج نام عکس حل شد
اين متد رو در فايل FileTransferHandler.ashx.cs نوشتم

public void InsertPicName(string picname)
{
MyDALBase.ExecuteNoneQuery(System.Data.CommandType .StoredProcedure,"InsertPicName",new SqlParameter[]{
new SqlParameter("@picname",picname)
});
}
و در قسمت زير فراخواني کردم

// Upload entire file
private void UploadWholeFile (HttpContext context, List<FilesStatus> statuses) {
for (int i = 0; i < context.Request.Files.Count; i++) {
var file = context.Request.Files[i];
file.SaveAs(StorageRoot + Path.GetFileName(file.FileName));

InsertPicName(file.FileName);

string fullName = Path.GetFileName(file.FileName);
statuses.Add(new FilesStatus(fullName, file.ContentLength));
}
}


لطفاً دوستان در مورد بقيه سوالات راهنمايي کنيد.

hamed_hossani
سه شنبه 28 آذر 1391, 19:45 عصر
فکر می کنم برای درج تو دیتابیس
نام فایل
حجم فایل file.ContentLength
مسیر فایل
رو باید ذخیره کرد