PDA

View Full Version : سوال: مشکل در آپلود عکس روی سرور



vahid78
دوشنبه 23 خرداد 1390, 17:06 عصر
سلام دوستان، من میخوام یه عکس رو از روی سرورم به فولدرم انتقال بدم ... با دستور move_uploaded_file
ولی مشکل اینجاست که فایل رو سرور اپ نمیشه یعنی tmp_name که میده،چیزی توش نیست ..
من از xamp استفاده میکنم، به نظرتون مشکل از این برنامه هست؟

webpower
سه شنبه 24 خرداد 1390, 00:58 صبح
فرمتون:

<form action=up.php method="post" name='index' enctype="multipart/form-data">
<input type=file name=index><br>
<input type=submit value=UPLOAD>
</form>
این قسمت اختیاری نیست: "enctype="multipart/form-data
صفحه up.php:


<?php
$name=$_FILES['index']['name'];
if($name=='')
{
echo 'Try again!';
exit;
}
else
{
if(move_uploaded_file($_FILES['index']['tmp_name'],"ups/$name"))
{echo 'File uploaded!<BR>';
echo "Name: ".$_FILES['index']['name']. "<br>";
echo "Type: ".$_FILES['index']['type']."<br>";
echo "Size: ".$_FILES['index']['size']. "Bytes<br>";
echo "Directory: <a href=\"ups/$name\">localhost/ups/$name</a><br>";
echo "<hr/>";
echo "<a href='ups/$name'>Click to see full size</a><br>";
echo "<img src='ups/$name' width=400px height=300px>";}
else
{
echo 'Sorry! server is busy';
}
}
?>
پوشه ی up رو اول ایجاد کنید تا عکس ها اونجا بره
در ضمن به جای move_uploaded_file میتونید از تابع copy استفاده کنید پارامترهاش هم به همون شکله
اگر مشکل حل نشد لطفا کدتون رو بذارید

vahid78
سه شنبه 24 خرداد 1390, 12:56 عصر
این کد منه :


<form action="/Ads/Library/Action.php?act=addads" method="post" name="AddAds" enctype="multipart/form-data">
<input name="pic" type="file" />
<input type="submit" name="Submit" value="ثبت" />



$fname=$_FILES["pic"]['name'];
if(!empty($fname))
{
$target = "/ads/adspic".$usrname."_".time()."_".$fname;
$ftmp_name=$_FILES["pic"]["tmp_name"] ;
if(move_uploaded_file($ftmp_name,$target))
$pic="/ads/adspic/".$usrname."_".time()."_".$fname;
else
die("آپلود عکس موفقیت آمیز نبود.");

}
else
{
$pic='0';
}


$_FILES["pic"]["tmp_name"] یه آدرسی میده،ولی تو آن ادرس فایلی نیست که من تو پوشه خودم ببرم ...

alismith
سه شنبه 24 خرداد 1390, 13:31 عصر
سلام

این دستورات test شده و 100% کار می کنه ، فقط من برای اینکه error نداشته باشم $usrname رو مقداردهی کردم، خودتون مقدار رو پاک کنید :


<html>
<head>
</head>
<body>
<?php
$usrname = "vahid78";
$fname=$_FILES['pic']['name'];
if(!empty($fname))
{
$target = "ads/adspic/".$usrname."_".time()."_".$fname;
$ftmp_name=$_FILES['pic']['tmp_name'];
if(move_uploaded_file($ftmp_name,$target))
$pic="ads/adspic/".$usrname."_".time()."_".$fname;
else
die("آپلود عکس موفقیت آمیز نبود.");

}
else
{
$pic='0';
}
?>

<form action="" method="post" name="AddAds" enctype="multipart/form-data">
<input name="pic" type="file" />
<input type="submit" name="Submit" value="ثبت" />
</form>

</body>
</html>



موفق باشید

vahid78
سه شنبه 24 خرداد 1390, 15:06 عصر
بازم مشکل هست و اپلود نمیکنه، من خودم حدس میزنم مشل از xamp باشه،درسته؟

alismith
سه شنبه 24 خرداد 1390, 15:37 عصر
سلام
شما مسیر ها رو چک کردی مطمئن هستی که درست دادی :



action="/Ads/Library/Action.php?act=addads"

$target = "/ads/adspic".$usrname."_".time()."_".$fname;

$pic="/ads/adspic/".$usrname."_".time()."_".$fname;


' / ' (slash) رو از ابتدای آدرس ها بردارید

امتحان کنید!


موفق باشید

alismith
سه شنبه 24 خرداد 1390, 16:02 عصر
سلام

کد رو یکم تغییر دادم ، گفتم شاید با شناسایی فرمت مشکل شما حل بشه !

این دستور رو امتخان کنید :



<html>
<head>
</head>
<body>
<?php
$usrname = "vahid78";
$fname=$_FILES['pic']['name'];
if(!empty($fname))
{

$allowedExtensions = array('jpg', 'jpeg', 'gif', 'png');
preg_match('/\.('.implode($allowedExtensions, '|').')$/', $_FILES['pic']['name'], $fileExt);


$target = "ads/adspic/".$usrname."_".time()."_".$fname.'.'.$fileExt[1];
$ftmp_name=$_FILES['pic']['tmp_name'];
if(move_uploaded_file($ftmp_name,$target))
$pic="ads/adspic/".$usrname."_".time()."_".$fname.'.'.$fileExt[1];
else
die("آپلود عکس موفقیت آمیز نبود.");

}
else
{
$pic='0';
}
?>

<form action="" method="post" name="AddAds" enctype="multipart/form-data">
<input name="pic" type="file" />
<input type="submit" name="Submit" value="ثبت" />
</form>

</body>
</html>




موفق باشید

vahid78
پنج شنبه 26 خرداد 1390, 17:59 عصر
با wamp تست کردم مشکلی نداشت ... ایراد از xamp بود