PDA

View Full Version : سوال: آپلود یک فایل در پوشه و ثبت آدرس آن در دیتا بیس



mehdiv
یک شنبه 17 دی 1391, 14:18 عصر
با سلام خدمت تمامی دوستان
یه صفحه داریم که توش یه لینک مینویسیم بعد یه عکس هم انتخاب میکنم و ارسال میکنم و اونو میفرسه به یه فایل و اون اطلاعاتش رو توی دیتا بیس ثبت میکنه
حالا من میخوام عکس رو که آپلود میکنم عکس بره توی پوشه مورد نظر من و لینک و آدرس عکس توی دیتا بیس ثبت بشه
اگه دوستان همچین کدی دارن لطفا برام بزارن چون خیلی نیاز دارم
این کد خودم هست


<?php
$iSize = 800000;

$iWidth = 1000;

$iHeight = 1000;

if((isset($_FILES["image"])) && ($_FILES["image"]["size"] > 0))
{
$imgSize = $_FILES["image"]["size"];
$imgType = $_FILES["image"]["type"];
$tmpName = $_FILES["image"]["tmp_name"];

if($imgSize > $iSize)
exit("Error: Large file size.");

$getImgSize = getimagesize($tmpName);

if(!$getImgSize)
exit("Error: Invalid Image File.");

list($width, $height) = $getImgSize;

if(($width > $iWidth) || ($height > $iHeight))
exit("Maximum width and height exceeded. Please upload images below 100x100px size");

$fp = fopen($tmpName, 'r');
$imageName = fread($fp, filesize($tmpName));

if(!get_magic_quotes_gpc())
$imageName = addslashes($imageName);

fclose($fp);

$date = date("Y-m-d H:i:s");

$link = $_POST['link'];

//Connect To Date Base
$host_name = "localhost";
$user_name = "";
$pass = "";
$db_name = "";
$dblink = mysql_connect($host_name,$user_name,$pass)or die(mysql_error());
$connect = mysql_select_db($db_name,$dblink)or die(mysql_error());
//Insert To Date Base
$Query = mysql_query("INSERT INTO `slider` (`imgType` ,`imgImage` ,`imgSize` ,`imgDate` ,`link`)
VALUES('$imgType','$imgImage','$imgSize','$imgDate ','$link') ");
if($Query==true)
echo 'The Insert is Successfull';
else
echo 'The Insert is Not Successfull';
mysql_close();
}

?>

این کد همه چیزا رو میفرسته توی دیتا بیس حتی عکس که من نمیخوام اینجوری باشه

iner30
یک شنبه 17 دی 1391, 14:24 عصر
move_uploaded_file($_FILES["upfile"]["tmp_name"][$key], $name)
این کد فایل رو تو هاست آپلود میکنه
$name رو جایی که میخوای فایل رو بریزی همراه با اسم فایل آپلود شده باید باشه ...

mehdiv
یک شنبه 17 دی 1391, 14:26 عصر
خوب یه چیزی الان من میخوام تو کد من عکس رو ثبت نکنه آدرس عکس رو ثبت کنه اونو چیکارکنم

iner30
یک شنبه 17 دی 1391, 14:32 عصر
خوب الان متغییر های imgImage و link توی کدهای شما چیه؟

mehdiv
یک شنبه 17 دی 1391, 14:38 عصر
اینم کدی که توش فایل ها رو انتخاب میکنم و میفرستم


<?php ob_start(); session_start();
include("../ms_con.php");
include("../configuration.php");
if (isset($_SESSION['aid']) or isset($_SESSION['bid'])){
if (isset($_SESSION['aid'])and $_SESSION['aid']>0){
$uid=(int)strip($_SESSION['aid']);
$query=("SELECT id,user_name FROM settings where id='$uid'");
$r=@mysqli_query($conn,$query);
$row=@mysqli_fetch_assoc($r);
if($row['user_name']!=$_SESSION['UN']){
echo "You do not have permission to access this page";
exit();
}
}else if (isset($_SESSION['bid'])){
$bid=(int)strip($_SESSION['bid']);
$query=("SELECT * FROM admins where id='$bid'");
$r=@mysqli_query($conn,$query);
$row=@mysqli_fetch_object($r);

if($row->username!=$_SESSION['UN'] or $row->m_ip==0 ){
echo "You do not have permission to access this page";
exit();
}

}
}else{
echo "You do not have permission to access this page";
exit();
}
?>
<table width="60%" border="0px" class="add_adv" align="center" bgcolor="#FCFCFC" >

<tr class="blue_head "> <td colspan="2" class="stl5" align="right">New image</td></tr>


<form action="insert.php" method="post" enctype="multipart/form-data">
<tr > <td class="pad">
<input name="image" type="file" />
</td><td class="pad">
images</td></tr>
<tr > <td class="pad">
<input type="text" name="link">
</td><td class="pad">
link
</td></tr>
<tr><td colspan="2" class="pad" align="center">
<input type="submit" name="submit" value="Submit">

</td></tr>
</form>
</table>

البته یه موردی هم که هست اینه که لینک رو هم ثبت نمیکنه تو دیتا بیس

Tarragon
یک شنبه 17 دی 1391, 14:40 عصر
خب $imgType رو چك كن كه درست باشه مثلا jpg يا png باشه.

iner30
یک شنبه 17 دی 1391, 14:44 عصر
$name ="files/".$name_new;
move_uploaded_file($_FILES["upfile"]["tmp_name"][$key], $name


$name میشه لینک فایل و باید اینو تو دیتابیس ذخیره کنی ، البته اینم باید دقت کنی اگه لینک کامل میخوای ذخیره کنی لینک مسیر اسکریپ رو هم باید بش اضافه کنی (البته بعد آپلود)
حالا نمیدونم link که خود کاربر وارد میکنه چیه!!!

mehdiv
یک شنبه 17 دی 1391, 14:51 عصر
link که خود کاربر وارد میکنه آدرس سایت هست
یه اسلایدر هست که کاربر با کلیک روی هر عکس وارد لینک مربوط به اون میشه

link یه همچین چیزی میشه

http://www.test.com

من الان کدی که دادید رو بزارم توی فایل درست میشه ؟
یعنی عکس رو آپلود میکنه در پوشه و آدرسش رو میفرسته به دیتا بیس؟

mohsen_31369
یک شنبه 17 دی 1391, 14:54 عصر
سلام
کلا برای آپلود عکس از این کلاس (http://www.verot.net/php_class_upload_samples.htm) استفاده کن.
فوق العادس. هرکاری که بخوای با عکس انجام بدی با این کلاس میتونی. کارکردن باهاش سادس. مسیر ذخیره فایل رو به همراه اسم فایل بهش میدی و اونجا ذخیره می کنه
بعد میتونی این آدرس رو تو دیتابیس بزاری

iner30
یک شنبه 17 دی 1391, 14:56 عصر
پس شما به جای imgImage لینک فایل رو ذخیره کن ، اینم که خودش فایل رو آپلود میکنه جایی که میخوایین
اگه یه فایل هم میگیرین هر دفعه key رو برابر 0 کنید

mehdiv
دوشنبه 18 دی 1391, 01:44 صبح
سلام
من عاجزانه خواهش میکنم
یکی به من یه کد آپلود بده که من بتونم یه عکی انتخاب کنم و عکس رو توی پوشه ذخیره کنه و آدرس عکس رو توی دیتا بیس

mohsen_31369
دوشنبه 18 دی 1391, 14:00 عصر
سلام
کد HTML


<html>
<body>

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

</body>
</html>

فایل upload_file.php اول در این فایل تنظیمات اتصال به دیتابیس رو انجام بده و پایگاه دادت رو انتخاب کن


//set your db config
//include class.upload for working with img
require_once ('./class.upload.php');
if(isset($_FILES['myfile']))
{
$foo = new Upload($_FILES['myfile']);
if ($foo->uploaded)
{
// set your img name
$foo->file_new_name_body=crypt(rand_string(12).time());
// others setting that you want.
// for more setting ; you can see the manual of class.upload in http://www.verot.net
$foo->image_resize=true;
$foo->image_x=330;
$foo->image_y=220;
$foo->image_convert='jpeg';
$foo->jpeg_quality=100;
// save in img folder
$foo->Process('./img/');

if ($foo->processed) {
$nameOfImg=$foo->file_dst_name_body.'jpeg';
$sql="INSERT INTO tbl_img SET img='$nameOfImg'";
$res=mysql_query($sql) or die (mysql_error($res));
} else
{
echo 'error : ' . $foo->error;
}
}
}

کلاس class.upload.php رو از سایتی که گفتم داونلود کن.