Train

PDA

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


saeid223
12-16-2009, 04:13 PM
سلام میکنم خدمت دوستان و مدیران عزیز
در جایی مخصوص از وبسایت وقتی فایلی آپلود می شود مشخصات فرد آپلود کننده با اسم فایل به صورت کامل یعنی همراه با پسوند وارد file در جدول مثلا proj میشود
حالا در قسمت مدیریت بنده نیاز دارم که مثلا رکورد ثبت شده شخص ایکس که فایلی به نام مثلا game one.zip اپلود کرده به عنوان لینک در قسمت مدیریت نشان بدهد که قابل دانلود باشد(همه ی فایل های اپلودی در یک پوشه آپلود می شوند)
مثلا در قسمت مدیریت حسنعلی فایلی که آپلود کرده در yourname.com/upload/game one.zip ذخیره شده که وقتی کلیک میکنیم دانلود شود
حالا من میخوام با توجه به بازخوانی از بانک اطلاعاتی این لینک کامل شود
یک راه حل نصف و نیمه کدی به صورت زیر است که کاملا جوابگو نیست:

<?php echo "<a href=". "../upload/".$row['file'] . "><img src=\"../images/download.gif\"/></a>"; ?>

همون طور که گفتم کاملا جوابگوی نیاز من نیست چون وقتی در اسم فایل اسپیس وجود داشته باشد موقع دیدن لینک در قسمت مدیریت قسمت قبل از اسپیس رو فقط نشون میده و حتی به پسوند فایل هم نمی رسه
اما بقیه فایل های آپلود شده که در داخل اسمشون اسپیس نباشه لینکش رو کامل نشون میده
در ضمن من بانک اطلاعاتی رو نگاه کردم هر فایلی که اپلود بشه چه در داخل اسم فایل اسپیس باشه یا نباشه اسم با پسوند به طور کامل داخل file جدول proj ذخیره میشه (دقت کنید که فقط اسم کامل فایل با پسوند ذخیره میشه و نه ادرسش)
حالا من کد کاملشو از شما اساتید میخواستم اگر لطف کنید راهنمایی کنید
اگه طوری باشه که نباز نباشه آدرس کامل هر فایلی اپلود در file ذخیره بشه بهتره اگر هم نیاز به چنین کاری بود از شما راهنمایی های لازمو خواستارم
در ضمن اگه از تابع time برای ذخیره اسم فایل در بانک اطلاعاتی در این روش استفاده نشه بهتره
باتشکر

PLUS
12-16-2009, 07:47 PM
سلام میکنم خدمت دوستان و مدیران عزیز
در جایی مخصوص از وبسایت وقتی فایلی آپلود می شود مشخصات فرد آپلود کننده با اسم فایل به صورت کامل یعنی همراه با پسوند وارد file در جدول مثلا proj میشود
حالا در قسمت مدیریت بنده نیاز دارم که مثلا رکورد ثبت شده شخص ایکس که فایلی به نام مثلا game one.zip اپلود کرده به عنوان لینک در قسمت مدیریت نشان بدهد که قابل دانلود باشد(همه ی فایل های اپلودی در یک پوشه آپلود می شوند)
مثلا در قسمت مدیریت حسنعلی فایلی که آپلود کرده در yourname.com/upload/game one.zip ذخیره شده که وقتی کلیک میکنیم دانلود شود
حالا من میخوام با توجه به بازخوانی از بانک اطلاعاتی این لینک کامل شود
یک راه حل نصف و نیمه کدی به صورت زیر است که کاملا جوابگو نیست:

<?php echo "<a href=". "../upload/".$row['file'] . "><img src=\"../images/download.gif\"/></a>"; ?>

همون طور که گفتم کاملا جوابگوی نیاز من نیست چون وقتی در اسم فایل اسپیس وجود داشته باشد موقع دیدن لینک در قسمت مدیریت قسمت قبل از اسپیس رو فقط نشون میده و حتی به پسوند فایل هم نمی رسه
اما بقیه فایل های آپلود شده که در داخل اسمشون اسپیس نباشه لینکش رو کامل نشون میده
در ضمن من بانک اطلاعاتی رو نگاه کردم هر فایلی که اپلود بشه چه در داخل اسم فایل اسپیس باشه یا نباشه اسم با پسوند به طور کامل داخل file جدول proj ذخیره میشه (دقت کنید که فقط اسم کامل فایل با پسوند ذخیره میشه و نه ادرسش)
حالا من کد کاملشو از شما اساتید میخواستم اگر لطف کنید راهنمایی کنید
اگه طوری باشه که نباز نباشه آدرس کامل هر فایلی اپلود در file ذخیره بشه بهتره اگر هم نیاز به چنین کاری بود از شما راهنمایی های لازمو خواستارم
در ضمن اگه از تابع time برای ذخیره اسم فایل در بانک اطلاعاتی در این روش استفاده نشه بهتره
باتشکر

دوست عزیز اگر درست منظورتون رو متوجه شده باشم؛ مشکل شما از database و یا نحوه اسم گذاری فایل ها نیست؛ مشکل از نشون دادن لینک ها هستش که مرورگر توی لینک فاصله یا بعضی کاراکتر های دیگه رو قبول نمیکنه؛
برای این کار کافیه کاری کنیم که مرورگر اونها رو بشناسه؛ برای این کار هم باید از تابع urlencode استفاده کنیم؛
به این صورت:

echo "<a href=". "../upload/".urlencode($row['file'])."><img src=\"../images/download.gif\"/></a>";


:x

saeid223
12-16-2009, 08:38 PM
دوست عزیز اگر درست منظورتون رو متوجه شده باشم؛ مشکل شما از database و یا نحوه اسم گذاری فایل ها نیست؛ مشکل از نشون دادن لینک ها هستش که مرورگر توی لینک فاصله یا بعضی کاراکتر های دیگه رو قبول نمیکنه؛
برای این کار کافیه کاری کنیم که مرورگر اونها رو بشناسه؛ برای این کار هم باید از تابع urlencode استفاده کنیم؛
به این صورت:

echo "<a href=". "../upload/".urlencode($row['file'])."><img src=\"../images/download.gif\"/></a>";


:x

آق قربون اون مخت برم که مستقیم زدی به هدف خیلی مردی به خدا داداش
بابا به هرکسی گفتیم یا گفت درست در بانک اطلاعاتی ذخیره نشده یا یه بهونه ای اورد
تو اخر برنامه نویسی-حال کردم دوست عزیز
درسته در بانک اطلاعاتی همه چی به خوبی ذخیره شده اما موقع فراخوانی همون طور که شما متوجه شدی و من گفتم مشکل داشت
حالا این کدی رو که گذاشتیو تست میکنم اگه حتی جوابم نده من واقعا بهت ایمان دارم داداشheart
دمت گرم
خیلی گیر این مسئله بودمthumbsup

saeid223
12-16-2009, 09:23 PM
دوست عزیزم تستش کردم:x
فایل مثلا با نام game one.zip آپلود شده در موقع دانلود در قسمت مدیریت در هر دو مرورگر اکسپلورر و فایرفاکس یه نتیجه داشت: upload/game+one.zip
جوابی که گرفتمو به صورت دوتا عکس بهت نشون میدم
دیگه داره مخم سوت میکشه:(
اگه راه دیگه ای میدونی کمکم کن:(
افسرده شدمcigar

PLUS
12-17-2009, 03:08 AM
دوست عزیز؛ urlencode در اصل برای encode کردن متغییر هایی هستش که به صفحه داده میشه هستش؛ برای encode کردن یک نوشته در آدرس باید از rawurlencode استفاده کنید؛
فرق اینها این هستش که به عنوان مثال؛ همونطور که گفتین urlencode فاصله ها رو به + تبدیل میکنه که برای مفسرهای php و aspx و ... قابل فهم هستش و rawurlencode فاصله ها رو به 20% تبدیل میکنه که برای apache قابل فهم هستش؛ و از اونجایی که فایل شما لینک مستقیم به فایل هستش باید از rawurlencode استفاده کنید:

echo "<a href=". "../upload/".rawurlencode($row['file'])."><img src=\"../images/download.gif\"/></a>";

saeid223
12-17-2009, 05:42 AM
به خدا خیلی اوستایی
من نوکرتم حاجی
من که دارم php مینویسم هنوز نمی تونم جرات کنم اسممو بذارم برنامه نویسی(واقعا هیچم)
چون الان که می بینم هنوز همه توابعو کامل بلد نیسم
داداش شاگرد نمی گیری؟