مشکل آپلودر در php-حل شد
سلام.من یک آپلودر دراگ اند دراپ دانلود کردم و برای سایت خودم اختصاصی کردم.
آدرس تصاویر رو بعد از آپلود بصورت یک value در داخل یک imput بهم میده.
و من هم در قالب یک متد پست میفرستمش برای آپلود روی دیتابیس
مشکلات من ایناست:
هربار که بهم تصویر میده با name یکسان میده و هنگام آپلود داخل دیتابیس فقط یکیشون آدرسش ثبت میشه.
نام هاشونو اگه متغیر کنم:
مثلا:img1 img2 img3 و...
بعد موقع دستور آپلود داخل دیتابیس باید 50تا ورودی تعریف کنم که خیلی زیاده!!!
راه بهتری هم هست که نام ایمپوت ها یکسان باشه اما همشون داخل دیتابیس ذخیره شن؟
اگر اشتباه منظور شما رو متوجه نشده باشم میخواهید چند اینپوت از نوع file داشته باشید با نام یکسان .
برای این منظور به این شکل میتونید عمل کنید
<input type="file" name="images[]" >
در این صورت هرچندتا اینپوت از نوع فایل با name = images داشته باشید ، همگی در یک آرایه با نام images ارسال شده و با یک foreach میتونید اسم تک تک عکس هارو واکشی کرده و در دیتابیس ذخیره کنید.
من هنوز مطمئن نیستم که منظور سوال شما رو درست متوجه شده باشم یا نه. اما بر اساس چیزی که متوجه شدم ؛ فرض کنید 10 اینپوت عکس دارید :
<input type="file" name="images[]" >
<input type="file" name="images[]" >
<input type="file" name="images[]" >
<input type="file" name="images[]" >
<input type="file" name="images[]" >
<input type="file" name="images[]" >
<input type="file" name="images[]" >
<input type="file" name="images[]" >
<input type="file" name="images[]" >
<input type="file" name="images[]" >
اگر مقدار name را فرضا images بنویسید ، در هنگام پست شدن فرم ، فقط مقدار اینپوت اول ارسال می شود. اما وقتی با [] مینویسید تمام اینپوتهایی که name آنها images باشد به شکل یک آرایه ارسال می شوند.
سمت PHP به این شکل میتونید مقادیر رو دریافت کنید :
foreach($_FILES['images']['tmp_name'] as $key => $tmpName ){
$fileName = $_FILES['files']['name'][$key];
$fileSize = $_FILES['files']['size'][$key];
$fileTmp = $_FILES['files']['tmp_name'][$key];
$fileType = $_FILES['files']['type'][$key];
// write a query that inserts image name into database
}
پاسخ:
<input type="file" name="img[]" >
$pic = $_POST['img'];
foreach($pic as $item)
$sql="insert into img (img) values ('{$item}') ";
$stmt=$db->prepare($sql);
$stmt->execute();
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .