PDA

View Full Version : سوال: اضافه کردن اپلودر



M0TR!X
چهارشنبه 14 خرداد 1393, 19:03 عصر
سلام.

من یه فرمی دارم یه سری اطلاعات رو میگیره بعد میره یه صفحه بعد وارد دیتابیس میکنه. یکی از گزینه ها عکسه.

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

ravand
چهارشنبه 14 خرداد 1393, 22:54 عصر
این سوال زیاد مطرح شده. یه نمونه اش توی این کتاب صفحه ی 106 . امنیتش هم یه مطلب پایین تره:
http://barnamenevisi.blogsky.com/1393/01/01/post-123

hamed-php
چهارشنبه 14 خرداد 1393, 23:50 عصر
فرم



<html>
<body>

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>




<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
} else {
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("upload/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
} else {
echo "Invalid file";
}
?>

M0TR!X
پنج شنبه 15 خرداد 1393, 13:42 عصر
سلام

ممنون از همه.

ببینید من یه فرم دارم.مثلا فرم ثبت نام کاربر رو در نظر بگیرید.

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

وقتی مشخصات رو وارد میکنه دکمه ثبت رو میزنه میره به یه صفحه که اطلاعات(مشخصات کاربر) رو با دستور insert وارد دیتابیس میکنه. حالا من این عکس رو هم بفرستم به اون صفحه؟اونجا اپلود کنم؟

الان دارم همین کارو انجام میدم ولی اپلود نمیشه.ولی دستور insert اجرا میشه. ارور فایل نامعتبر میده.در حالی که همین فایلو به صورت جدا با همین اپلودر اپلود میکنم اپلود میکنه

marys_farahani
پنج شنبه 15 خرداد 1393, 16:51 عصر
ببین شما یه فرم ثبت نام داری که کاربر باید یه سری اطلاعات پر کنه به همراه یه عکس یا فیلم یا صدا یا فایل زیپ یا هر چیز دیگه از این دست


اولین کاری که باید بکنی اینکه یه فرم ایجاد کنی که از نوع فایل باشه یعنی



<form action="" method="POST" enctype="multipart/form-data">
</form>


method از نوع post بزار
و action صفحه ایی که قرار اطلاعات بره

و منظورم از نوع فایل اینه
enctype="multipart/form-data"

تا اینجاش که مطمئنم بلد بودی
حالا فایل و فیلد هات داخل این فرم ایجاد کن که اونم قعطا بلدی

برای هر کدوم یه خاصیت نام بزار که تو صفحه php بتونی با اون نام اطلاعات بگیری


خب حالا اطلاعاتت میفرستی به صفحه دلخواهت
شرط میزاری که اگه فلان اطلاعات امد اطلاعات بگیره و چک کنی که کد مخربی نداشته باشه
isset برای دکمه ارسالت
!empty() برای فیلد های داخل فرومت

خب اطلاعات میگیری ثبت میکنی داخل دیتابیس

وقتی اطلاعات ذخیره شدمیگی
اگه فیلد فایل هم خالی نبود اطلاعات بگیره اینطوری بعدش باید اسم این فایل رو هم ذخیره کنی تو دیتابیس دیگه



if(!empty($_FILES['fileInputImage']['type']))
{
switch($_FILES['fileInputImage']['type'])
{
case "image/gif": $ext = '.gif'; break;
case "image/jpeg": $ext = '.jpg'; break;
case "image/pjpeg": $ext = '.jpg'; break;
case "image/png": $ext = '.png'; break;
default: $ext = '0'; break;
}
if($ext != '0')
{
$FileName = time().'image'.$ext;
move_uploaded_file($_FILES['fileInputImage']['tmp_name'], '../'.$pathimg.$FileName) or die('Error' . $_FILES['fileInputImage']['error']);

$query = "UPDATE `path_image` SET `path_img`='$pathimg$FileName',`path_thumbnail`='$ pathimgthum$FileName' WHERE `parent_id`='$idjari' AND `table` = 'pre_order';";
$result = mysql_query($query,$this->con);
}
}



ببین کد خودم برات گذاشتم اگه متوجه نشدی بگو برات هر خطش توضیح بدم موفق باشی