رفتن به مطلب

چند سوال در مورد آپلود فایل


پست های پیشنهاد شده

سلام دوستان .

من با آپلود فایل و ذخیره ی اون در دیتابیس مشکلی ندارم اما چند سوال :

1 - میشه فایل ها رو از طریق پوشه ای که فایل ها در اون ذخیره میشه مدیریت کرد ؟

مثلا اسامی تمام فایل ها رو بده و عملیات حذف , ویرایش و ... انجام بشه .

برای حذف از unlink و برای تغییر فایل از copy میشه استفاده کرد. ولی من با لیست کردن تمامی اسامی مشکل دارم .

2 - اگر بشه از این طریق مدیریت کرد آیا نیازی به ذخیره در دیتابیس هست ؟

ممنونم .

لینک به ارسال

1 : بله هر کاری که بخواید میتونید انجام بدید

بسیار راحت :


$dir = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);

پیشنهاد بنده , به هیچ عنوان فایل را تو بانک اطلاعاتی ذخیره نکنید

لینک به ارسال

پیشنهاد بنده , به هیچ عنوان فایل را تو بانک اطلاعاتی ذخیره نکنید

ممنونم . به چه علت ؟ من همیشه ذخیره میکردم .

لینک به ارسال

ممنونم . به چه علت ؟ من همیشه ذخیره میکردم .

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

درواقع اصلا این کار استاندارد نیست و کسی هم توصیه نمینکه که فایلها رو در بانک اطلاعاتی ذخیره کنید . پیشنهاد بنده اینه که فایلهاتونو در یک دایرکتوری قرار بدید و نهایتا اسم فایلها را در فیلد مریوطه ذخیره کنید . بصورت کلی داشتن Database کوچکتر , حتما perform بهتری داره , و حتما هم میتونید بهتر پشتیبان تهیه کنید . بنابراین اگر بتونید فقط reference فایل رو ذخیره کنید قطعا کار بهتری انجام دادید

لینک به ارسال

متوجه منظورتون شدم . من همیشه فقط نام فایل رو در دیتابیس ذخیره میکنم , ولی تصور کردم شما این رو اشتباه میدونید که تعجب کردم ...

تشکر

لینک به ارسال

من اینطور برای حذف فایل استفاده میکنم اما جواب نمیده.


$path='http://localhost/mysite/upimage/upload/';
unlink($path.$name_img);

مسیر درسته ولی میگه اجازه نمیده برای حذف .

Warning: unlink() [function.unlink]: http does not allow unlinking in C:\xampp\htdocs\mysite\upimage\delete.php on line 24

$name_img اسم و پسوند تصویر هستش .

ویرایش شده توسط pary_daryayi
لینک به ارسال

حل شد .

در copy و unlink فقط کافیه اسم پوشه رو بنویسیم نه آدرس کامل ( البته روی لوکال )

ولی از لحاظ منطقی نباید مشکلی ایجاد میکرد !!! :mellow:

لینک به ارسال
  • 2 هفته بعد...

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


@unlink('upload/'.$name_img);
copy($tem,'upload/'.$newname);

ولی الان که فکرشو میکنم , این کدی که من نوشتم در واقع ابتدا عکس رو حذف میکنه و بعد مثل move_uploaded_file عمل میکنه . :)

نمیشه کاری کرد که بدون حذف اولیه ی عکس , مستقیما با دستور کپی , عکس جدید جایگزین عکس قبلی بشه ؟؟؟ B)

ویرایش شده توسط pary_daryayi
لینک به ارسال

اگر منظورتون از ویرایش move کردنه که معنیش همین کاریه که فرمودید و الا می تونید فقفط کپی کنید ولی دو برتابر جا می گیره

لینک به ارسال

منظورم از ویرایش تصویر , اینه که تصویر جدید , جایگزین تصویر قبلی بشه ..

در این صورت کدی که من نوشتم با move فرقی نداره . درسته ؟

میخوام بدونم , میشه کاری کرد که مستقیما عکس رو عوض کرد ؟ بدون حذف عکس قبلی ؟

لینک به ارسال

هم روی هاست و هم روی ویندوز معنی اصلی عوض کردن حذف فایل 1 و جایگزینی فایل 2 است و الا به صورت فیزیکی چیزی جای دیگری نمی شینه و هر فایلی یک مشت کده که در اثر پردازش خروجبی های متفاوت به ما می ده

لینک به ارسال

درسته , ولی copy در دو فایل txt به معنی جایگزینی محتوای فایل 1 به درون فایل 2 هستش. تصور کردم برای image هم بشه این کار رو کرد ... :)

-------

پس در این صورت این copy با move تفاوتی نمیکنه .

میشه اول حذف کرد و بعد یا از copy استفاده کرد و یا از move . درسته ؟

ویرایش شده توسط pary_daryayi
لینک به ارسال

وقتی یک فایل را از نقطه a به b می خواهیم move کنیم یعنی

فایل را در a کپی می کنیم

فایل را در b پیست می کنیم

فایل را در a حذف می کنیم

ولی وقتی فایل A را از نقطه a به روی فایل A در نقطه b بخواهیم move کنیم یعنی

فایل را در a کپی می کنیم

فایل موجود در b را حذف می کنیم

فایل را در b پیست می کنیم

فایل را از نقطه a حذف می کنیم

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...