مشکل با عنصر فایل در html

سلام
من موخواستم dialog box عنصر فایل رو بدون کلیک روی دکمه ی browse ظاهر کنم.برای این کار از متد click استفاده کردم ولی با submit فرم مشکل دارم. بار اول که روی دکمه ی submit که کلیک میشه هیچ اتفاقی نمیفته و value عنصر فایل خالی میشه و با بار دوم submit فرم ارسال میشه.
در اصل برای submit فرم باید دو بار روی دکمه ی submit کلیک کرد که بار اولش باعث خالی شدن value عنصر قرم میشه.
لطفاً راهنمایی کنید
 

peyman1987

Member
دوست عزیز اول میشه بگی چجوری dialog box رو بدون استفاده از type file ظاهر کردی؟؟ با چه زبونی؟؟؟ ویبی اسکریپت ؟؟؟؟
 
با تشکر از پاسخ شما
دوست گرامی پس از گذاشتن عنصر فایل در صفحه (بصورت عادی) با کد :
HTML:
document.getElementById("file element id").click()
که باjs نوشته شده شما می تونید dialog box عنصر فایل رو بدون کلیک روی اون دکمه ی browse نمایش بدین.
نمونه ی این مورد هم در قسمت attach سایتgmail قابل مشاهده است
با تشکر
 

peyman1987

Member
با تشکر از پاسخ شما
دوست گرامی پس از گذاشتن عنصر فایل در صفحه (بصورت عادی) با کد :
HTML:
document.getElementById("file element id").click()
که باjs نوشته شده شما می تونید dialog box عنصر فایل رو بدون کلیک روی اون دکمه ی browse نمایش بدین.
نمونه ی این مورد هم در قسمت attach سایتgmail قابل مشاهده است
با تشکر

ممنون دوست عزیز. اینو نمیدونستم.
اما درباره مشکلتون شاید بشه با سابمیت فرم با جاوااسکریپت مشکل رو حل کرد. بجای دکمه submit از یه input نوع button استفاده کنین و توی رویداد کلیکش فرم رو سابمیت کنین شاید درست بشه.

ولی بنظرم این کار شدنی نیست. چون اگه قرار بود بشه همچین کاری کرد ( یعنی با کد به file مقدار داد) میشد کدی نوشت که بدون اجازه کاربر از روی سیستمش فایل آپلود کنیم.

بهرحال اگه کار نکرد فکر کنم بهتر باشه کدتون رو بزارین تا بشه بهتر کمک کرد.
 
سلام
نمونه ی این کار همونطور که در پست قبلی هم اشاره کردم درقسمت attach سایت gmail داره کار می کنه.
شما در صورت امکان اون قسمت رو مشاهده کنید.
با جاوااسکریپت هم فرم باید دوبار سابمیت بشه یعنی متد submit() هم باید دوبار اجرا بشه.
کدش هم کد ساده ای هست:
شما برای یه عنصر دیگه عنصر مثل DIV یه رویداد onclick تعریف می کنید بعد توی اون همون کد بالا یعنی document.get.....می زاریت اینجوری این کار اتفاق می افتد.(من می خوام این کار با کلیک روی یه متن اتفاق بیفته)
 
آخرین ویرایش:
Gmail از تکنولوژی Ajax برای upload فایلها استفاده می کنه .​


برای Upload نیز این را پیشنهاد می کنم . خودم با کمی تغییر استفاده کردم خیلی خوب عمل کرد .


سلام

دوست عزيز متشكرم از پاسختون
من اوت تاپيك رو ديدم ولي مشكل من رو حل نكرد.
من قبل از اين مي خواستم فايلم رو با ‌ajax آپلود كنم.ولي مشكلي كه پيش اومد اين بود كه فقط يه پوسته از اون فايل آپلود مي شد (يعني فقط يه چيزي آپلود مي شد كه اسم فايل رو داشت ولي محتويات اون رو نداشت)مثلاً وقتي يه عكس رو باهاش آپلود مي كردي يه چيزي با آيكون عكس آپلود مي شد كه اسمش اسم همون عكس آپلود شده بود ولي فقط 3 يا 6 يا ... بايت حجم داشت و عكس رو منتقل نمي كرد و اين مشكل رو زياد مطرح كردم ولي جوابي نگرفتم.(متد مورد استفاده post بود و تمام boundary و هدر ها و غيره رو set مي كردم) من تقريباً هر چي اسكريپت آپلود بود رو نگاه كردم و جوابي نگرفتم واسه همين مجبور شدم اون رو فعلاً رها كنم.حالا دارم از تكنيك iframe پنهان استفاده مي كنم.
به هر حال حالا من دارم اينجوري كارم رو ادامه ميدم حالا به اين مشكل بر خوردم.در حال حاضر براي هر كدومشون راه حلي دارين براي من فرقي نمي كنه و مشكل من رو حل مي كنه.(در ضمن من باphp و js كار ميكنم)
باز هم ممنون​
 
با سلام خدمت همه ي اساتيد
لطفاً نظرات خودتون رو ذكر كنيد.
فكر نمي كنم اينقدر سوالم پيچيده باشه
 

جدیدترین ارسال ها

بالا