PDA

View Full Version : سوال: ضمیمه کردن ادرس عکس به فرم و ارسال به دیتابیس



saeed-71
دوشنبه 04 شهریور 1392, 10:10 صبح
سلام.
من یه فرم دارم که نیاز داره یه عکسم ضمیمه بشه.
حالا چیکار کنم که عکس بره تو یه پوشه آپلود بشه بعدش ادرسش همراه فرم به دیتابیس فرستاده بشه

linuxUser
دوشنبه 04 شهریور 1392, 10:36 صبح
سلام دوست عزیز



<form method="POST" action="page2.php" enctype="multipart/form-data">
<input type="text" name="name" />
<input type="text" name="lastname" />
<input type="file" name="image" />
<input type="submit" />
</form>

کد page2.php :


$name = $_POST['name'];
$lastname = $_POST['lastname'];
$folder = "upload/"
$target = $folder . $_FILES["image"]["name"];
move_uploaded_file($_FILES["image"]["tmp_name"], $target);

$mysqli = new mysqli("localhost", "my_user", "my_password", "database");
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
if ($mysqli->real_query("insert into table_name(`Name`, `Lastname`, `ImagePath`) values('$name', '$lastname', '$target')") === TRUE) {
printf("form data inserted.");
}
$mysqli->close();

saeed-71
دوشنبه 04 شهریور 1392, 11:07 صبح
ممنون جواب ولی جواب نداد
Warning: move_uploaded_file(upload/Tulips.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\xampp\htdocs\mashinbekhar\user\insertcar.php on line 9
میگه اینو تعریف نکردم function.move-uploaded-file

linuxUser
دوشنبه 04 شهریور 1392, 11:18 صبح
اسم تابع move_uploaded_file هست نه move-uploaded-file .
اینم لینک اصلی برای توضیحات بیشتر :

http://www.php.net/manual/en/function.move-uploaded-file.php

در ضمن چک کنید که حتما اون فولدر upload که من در کد استفاده کردم. کنار فایل page2.php ساخته باشید. فایل های آپلودی در اون فولدر قرار می گیره.( خطای که گذاشتید مربوط به اون هست)

saeed-71
دوشنبه 04 شهریور 1392, 12:02 عصر
الان ادرسش تو دیتا بیس ثبت میشه ولی خود عکس به پوشه اپلود منتقل نمیشه!
ولی ادرسی که باید باشه هستش!

saeed-71
دوشنبه 04 شهریور 1392, 12:29 عصر
این مشکلمم حل شد.
فقط اگه بخوام چنتا عکس رو با چنتا فیلد همزمان بفرستم باید این دستور رو تکرار کنم یا کامیی چیزی باید جایی بذارم؟

AliRezaPro
دوشنبه 04 شهریور 1392, 14:46 عصر
در این صورت input هاتونو به صورت آرایه بفرستید و از ان ور با foreach از مقادریز استفاده کنید :

<input type="file" name="fileup[]"/><br />


foreach ($_FILES['fileup']['name'] as $filename=>$d)
{
$tmp=$_FILES['fileup']['tmp_name'][$count];

move_uploaded_file($tmp,$upload_directory .'/'. $_FILES['fileup']['name'][$count]);
$count =$count+ 1;
$tmp='';
echo $d."<br />";
}

saeed-71
دوشنبه 04 شهریور 1392, 20:30 عصر
ممنون.چه تغییراتی ایجاد کنم تا یه عکس به طور پیش فرض خودش قرار بگیره تا اگه عکس اپلود نکرد اون عکس جایگزین بشه!؟

AliRezaPro
دوشنبه 04 شهریور 1392, 21:42 عصر
من نمیدونم به طور کلی اسکریپتی که دارید می نویسید چی است ؛ اما معمولا یک عکس به صورت دیفالت تعریف میکنند ( تو دایرکتوری ) و بعد از اینکه کاربر ثبت نام کرد اون عکس رو بهش اختصاص میدهند. یعنی فیلد عکس برای یوزر عکس دیفالت است و اگر عکس آپلود کرد آدرس اون با آدرس عکس دیفالت عوض میشه

saeed-71
دوشنبه 04 شهریور 1392, 21:48 عصر
منم دقیقا میخوام همین کار رو انجام بدم.
چجوری این عکس دیفالت رو تو دایرکتوری قرار بدم؟

saeed-71
سه شنبه 05 شهریور 1392, 08:39 صبح
چجوری این عکس دیفالت رو تو دایرکتوری قرار بدم؟