فراخوانی مقادیر رکورد به عنوان قسمتی از لینک

saeid223

New Member
با عرض سلام
در جایی مخصوص از وبسایت وقتی فایلی آپلود می شود مشخصات فرد آپلود کننده با اسم فایل به صورت کامل یعنی همراه با پسوند وارد 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 ذخیره بشه بهتره اگر هم نیاز به چنین کاری بود از شما راهنمایی های لازمو خواستارم
باتشکر
 

ziXet

مدیر انجمن PHP/MYSQL
مشکلت با space عجیبه!
اگه این اسمارو تو دیتابیس میریزی چرا با space مشکل به وجود میاد؟
 

pasargad-ir

Active Member
ببین شما وقتی فابل رو تو یه پوشه میزاری یه کد به جای نام بهش بده

بعد در بانک اطلاعاتیت برای اون کد خاص متغییرهایی از قبیل نام - تاریخ - حجم فایل و ... رو ذخیره کن.

اینجوری حتی دفعات دانلود رو هم می تونی مشخص کنی.

تازه اگه عضو گیری داشته باشی مشخص می شه که کدوم کاربر ها دانلود کردن و حتی در نهایت رتبه هم می شه داد.


ولی بهتره فایل ها رو در db ذخیره کنی نه پوشه

ربطی به بحث نداره ولی من یه وب سایتی رو نوشتم که با c99 هک شد.چون تو پوشه می ریختم.مدتهاست فایل هام رو تو db میریزم.
 

ziXet

مدیر انجمن PHP/MYSQL
مشکلت با space عجیبه!
اگه این اسمارو تو دیتابیس میریزی چرا با space مشکل به وجود میاد؟
 

saeid223

New Member
مشکلت با space عجیبه!
اگه این اسمارو تو دیتابیس میریزی چرا با space مشکل به وجود میاد؟
آره خیلی عجیبه برای همین کلی کلافه م کرده
مثلا من فایل game one.zip را در اون صفحه آپلود میکنم اسم فایل که game one.zip به صورت کامل در بانک اطلاعاتی در file جدول proj ذخیره میشه اما موقع فراخوانی به صورت yourname.com/upload/game دیده میشه!
منم همینو موندم!!!!
 

saeid223

New Member
ببین شما وقتی فابل رو تو یه پوشه میزاری یه کد به جای نام بهش بده

بعد در بانک اطلاعاتیت برای اون کد خاص متغییرهایی از قبیل نام - تاریخ - حجم فایل و ... رو ذخیره کن.

اینجوری حتی دفعات دانلود رو هم می تونی مشخص کنی.

تازه اگه عضو گیری داشته باشی مشخص می شه که کدوم کاربر ها دانلود کردن و حتی در نهایت رتبه هم می شه داد.


ولی بهتره فایل ها رو در db ذخیره کنی نه پوشه

ربطی به بحث نداره ولی من یه وب سایتی رو نوشتم که با c99 هک شد.چون تو پوشه می ریختم.مدتهاست فایل هام رو تو db میریزم.
آخه این قایلی که آپلود میشه رو فقط مدیر دانلود میکنه و فقط برای مدیریت آپلود میشه
حالا دوتا سوال:
1- برای ذخیره file در db آیا حجم بانک اطلاعاتی بالا نمیره؟!!(برای بک آپ گرفتن و در مواقع ضروری عوض کردن هاستینگ؟)
2- برای این کار دستور خاصی هست که شما پیشنهاد میکنی؟ میشه کدش رو برام بذاری (برای امنیت بیشتر)
باتشکر
 

saeid223

New Member
کسی نبود جواب بده
خیلی عجله دارم
دوستان کمک کنن لطفا
مرسی
 

Masoud1365

مدیر انجمن
به نظر من ذخيره كردن فايل در ديتا بيس كار اصولي نيست ! شما فايل رو بايد يه جايي آپلود كنيد و فقط آدرسش رو در ديتا بيس ذخيره كنيد اگر اين كارو ميكنيد و مشكل داريد كدتون رو بزاريد تا بررسي بشه !

موفق باشيد.
 

ziXet

مدیر انجمن PHP/MYSQL
آخه این قایلی که آپلود میشه رو فقط مدیر دانلود میکنه و فقط برای مدیریت آپلود میشه
حالا دوتا سوال:
1- برای ذخیره file در db آیا حجم بانک اطلاعاتی بالا نمیره؟!!(برای بک آپ گرفتن و در مواقع ضروری عوض کردن هاستینگ؟)
2- برای این کار دستور خاصی هست که شما پیشنهاد میکنی؟ میشه کدش رو برام بذاری (برای امنیت بیشتر)
باتشکر
جتما درست ذخیره نمیشه!
شما فرض کن میخوای یه رشته مثل john smith رو بریزی تو دیتابیس بعد هم با یه حلقه while اونو از دیتابیس بخونی و چاپ کنی!
به احتمال زیاد از همون اول درست تو دیتابیس ذخیره نمیشه
 

pasargad-ir

Active Member
چه اجباریه که حتما فایل رو با نام game one.zip ذخیره کنی ؟؟؟

چرا خودت یه اسم واسش تعیین نمی کنی.

واسه اینکه اسامی تکراری نباشه می تونی از time(); استفاده کنی

همون مقدار time() رو در DB بعنوان مقدار اصلی و مرجعت در نظر بگیر.

اسم فایل - حجم فایل و هر چیز دیگه رو هم بر مبنای همون مقدار time(); متمایز کن.
 

saeid223

New Member
جتما درست ذخیره نمیشه!
شما فرض کن میخوای یه رشته مثل john smith رو بریزی تو دیتابیس بعد هم با یه حلقه while اونو از دیتابیس بخونی و چاپ کنی!
به احتمال زیاد از همون اول درست تو دیتابیس ذخیره نمیشه

دوست عزیز من در بالا اشاره کردم که:
"مثلا من فایل game one.zip را در اون صفحه آپلود میکنم اسم فایل که game one.zip به صورت کامل در بانک اطلاعاتی در file جدول proj ذخیره میشه اما موقع فراخوانی به صورت yourname.com/upload/game دیده میشه!"
یعنی دیدم که در بانک اطلاعاتی اسم فایل با پسوند درست و کامل ذخیره شده اما فقط موقع فراخوانی با فایل هایی که داخلشون اسپیس دارن مشکل داره که در بالا ذکر کردم
پس لطفا دیگه حرف از درست ذخیره نشدن نزنید شما با این اطیمنان که اسم فایل با پسوند کامل در db شده حرف بزنید
مرسی

به نظر من ذخيره كردن فايل در ديتا بيس كار اصولي نيست ! شما فايل رو بايد يه جايي آپلود كنيد و فقط آدرسش رو در ديتا بيس ذخيره كنيد اگر اين كارو ميكنيد و مشكل داريد كدتون رو بزاريد تا بررسي بشه !

موفق باشيد.
Hvi bخیره فایل در بان اطلاعاتی درست نیست منم تحقیق کردم متوجه این موضوع شدم
من در پست های بالا کامل توضیح دادم چیکار میکنم
فایل رو در پوشه ای به نام upload ذخیره میکنم و اسم فایل به طور کامل مثلا game one.zip در بان ذخیره میشه و طبق اون کد بالا که گذاشتم موقع فراخوانی آدرس به شکل زیر میاد:
yourname.com/upload/game
پست های بالا رو می خواندید متوجه می شدید
یعنی فقط با فایل هایی که در اسمشون اسپیش داره مشکل بوجود میاد
مرسی
 

saeid223

New Member
چه اجباریه که حتما فایل رو با نام game one.zip ذخیره کنی ؟؟؟

چرا خودت یه اسم واسش تعیین نمی کنی.

واسه اینکه اسامی تکراری نباشه می تونی از time(); استفاده کنی

همون مقدار time() رو در db بعنوان مقدار اصلی و مرجعت در نظر بگیر.

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

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

بالا