PDA

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



pirmard66
سه شنبه 21 خرداد 1392, 22:25 عصر
با سلام خدمت دوستان و اساتید محترم

در حال حاضر مشکلی با اپلود تک عکس ندارم

اما میخوام اپلود به صورت چند تایی باشه

خب اینم کدهام:

کد اول که در نمایش صفحه اپلود عکس استفاده میکنم:



<div class="up_img">
<form name="uo" method="post" action="upmg.php" enctype="multipart/form-data">
<li>
<label>انتخاب عکس :</label>
<input id="br" type="file" name="my_field" size="32" />
</li>
<input id="btn" type="submit" value="آپــلـود"/>
</form>
<form name="uow" method="post" action="nowaterupmg.php" enctype="multipart/form-data">
<li>
<label>آپلود عکس بدون واترمارک :</label>
<input id="brw" type="file" name="my_field" size="32" />
</li>
<input id="btnw" type="submit" value="آپــلـود بدون واترمارک"/>
</form>

</div>


بخشی از صفحه ای که آپلود رو انجام میده :



//include class.upload for working with img
require_once ('class/up_photo.php');
if(isset($_FILES['my_field']))
{
$foo = new Upload($_FILES['my_field']);
if ($foo->uploaded)
{
// set your img name
//$foo->file_new_name_body=crypt(rand_string(12).time() );
// others setting that you want.
$foo->image_resize=false;
$foo->image_x=330;
$foo->image_y=220;
$foo->image_convert='jpeg';
$foo->jpeg_quality=100;


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

shahriyar3
سه شنبه 21 خرداد 1392, 22:29 عصر
یا از اسکریپت های آماده استفاده کن که این قابلیت و دارن یا اینکه موقعی که عکس ها ارسال میشه و با php داری چکشون میکنی یک حلقه for بزار و input هارو چک کن
اولین input اسمش هست file1
دومیش میشه file2 همینجوری به ترتیب ...

pirmard66
سه شنبه 21 خرداد 1392, 22:34 عصر
با تشکر
حلقه رو کجا استفاده کنم؟

میشه بیشتر توضیح بدی؟

shahriyar3
سه شنبه 21 خرداد 1392, 22:38 عصر
با تشکر
حلقه رو کجا استفاده کنم؟

میشه بیشتر توضیح بدی؟
ببین فرم آپلود عکست مثلا 4تا 5تا 10 تا هرچی فیلد داره که اینجوری وقتی کاربر عکس ها رو انتخاب میکنه و روی سابمیت کلیک میکنه باید با حلقه for یکی به اندیس آرایه های پست اضافه کنی و چک کنی ببینی توش عکس هست یا نه. اگر عکس بود آپلود میشه اگر نه حلقه تموم میشه همونجا .

pirmard66
سه شنبه 21 خرداد 1392, 22:46 عصر
خب این حلقه هر دوطرف باید باشه؟

هنگممممم

shahriyar3
سه شنبه 21 خرداد 1392, 22:57 عصر
خب این حلقه هر دوطرف باید باشه؟

هنگممممم
توی کد های html که هنوز مقدارشون پر نشده و ارسال نشدن واسه چی باید حلقه گذاشت آخه؟ :لبخند:


<form name="uo" method="post" action="upmg.php" enctype="multipart/form-data"> <li> <label>انتخاب عکس :</label> <input id="br" type="file" name="my_field" size="32" /> </li> <input id="btn" type="submit" value="آپــلـود"/> </form><form name="uow" method="post" action="nowaterupmg.php" enctype="multipart/form-data"> <li> <label>آپلود عکس بدون واترمارک :</label> <input id="brw" type="file" name="my_field" size="32" /> </li> <input id="btnw" type="submit" value="آپــلـود بدون واترمارک"/> </form>

فرض کن تو این فرم 10 تا input هست که اسم هاشون به ترتیب
name=file1
name=file2
name=file3
...
name=file10
وقتی یوزر روی سابمیت کلیک کرد حلقه for میزاری با php


for($i=1;$i<10;$i++){
if(isset($_POST['file'.$i])){
//بقیه کد های اعتبار سنجی
}
}

pirmard66
چهارشنبه 22 خرداد 1392, 10:39 صبح
با تشکر

انجام دادم ولی چندتا باهم اپ نمیکنه

همون یک عکس اپ میکنه

کد من:



for($i=1;$i<10;$i++)
{
if(isset($_FILES['my_field'.$i]))
{
$foo = new Upload($_FILES['my_field'.$i]);
}
if ($foo->uploaded)
{
// set your img name
//$foo->file_new_name_body=crypt(rand_string(12).time() );
// others setting that you want.
$foo->image_resize=false;
$foo->image_x=330;
$foo->image_y=220;
$foo->image_convert='jpeg';
$foo->jpeg_quality=100;
//border


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

دوستان کمک........

shahriyar3
چهارشنبه 22 خرداد 1392, 10:54 صبح
for($i=1;$i<10;$i++)
{
if(isset($_FILES['my_field'.$i]))
{
$foo = new Upload($_FILES['my_field'.$i]);
if ($foo->uploaded)
{
// set your img name
//$foo->file_new_name_body=crypt(rand_string(12).time() );
// others setting that you want.
$foo->image_resize=false;
$foo->image_x=330;
$foo->image_y=220;
$foo->image_convert='jpeg';
$foo->jpeg_quality=100;
//border
}
}

}

pirmard66
چهارشنبه 22 خرداد 1392, 11:05 صبح
for($i=1;$i<10;$i++)
{
if(isset($_FILES['my_field'.$i]))
{
$foo = new Upload($_FILES['my_field'.$i]);
if ($foo->uploaded)
{
// set your img name
//$foo->file_new_name_body=crypt(rand_string(12).time() );
// others setting that you want.
$foo->image_resize=false;
$foo->image_x=330;
$foo->image_y=220;
$foo->image_convert='jpeg';
$foo->jpeg_quality=100;
//border
}
}

}


دادا من ته کد رو نزاشتم!

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

بذار کد کامل رو بزارم :(کد کامل اپلود)



<html>
<head>
<meta http-equiv="refresh" content="4;url=up_pic.php">
</head>
<?php
//set your db config
$con=mysql_connect(*******************);
$sdb=mysql_select_db("***********",$con);
//include class.upload for working with img
require_once ('class/up_cl.php');
for($i=1;$i<10;$i++)
{
if(isset($_FILES['my_field'.$i]))
{
$foo = new Upload($_FILES['my_field'.$i]);

if ($foo->uploaded)
{
// set your img name
//$foo->file_new_name_body=crypt(rand_string(12).time() );
// others setting that you want.
$foo->image_resize=false;
$foo->image_x=330;
$foo->image_y=220;
$foo->image_convert='jpeg';
$foo->jpeg_quality=100;
//border
$foo->image_border = 5;
$foo->image_border_color = '#FFF';
$foo->image_border_opacity = 100;
//water-mark
$foo->image_watermark = 'images/water-m.png';
$foo->image_watermark_x = 5;
$foo->image_watermark_y = -20;
// save in img folder
$foo->Process('pic/');

if ($foo->processed) {
//$aa=$foo->mime_magic;
$nameOfImg=$foo->file_src_name;
include ('time.php');
$dat= jdate('j/F/Y');
$opp=$foo->file_dst_name;
$sql="INSERT INTO pic (`img`,`date`,`fdn`) values ('".$nameOfImg."','".$dat."','".$opp."')";
$res=mysql_query($sql) or die (mysql_error($res));
} else
{
echo 'error : ' . $foo->error;
}
}

$sql="SELECT * FROM pic ORDER BY imgID DESC LIMIT 10";
$res=mysql_query($sql) or die (mysql_error($res));
while ($p=mysql_fetch_array($res))
{
echo "<img src=\"pic/".$p['fdn']."\" />";

}


}
}
?>
</html>


منتظر کمک دوستانم...

ehsan_savadkohi
چهارشنبه 22 خرداد 1392, 11:32 صبح
سلام.یه نمونه کد : شاید به دردت بخوره

pirmard66
چهارشنبه 22 خرداد 1392, 11:37 صبح
با تشکر ولی کدم مشکل نداره، فقط مشکلش همین آپلود چندتایی هست!

منتظرم...
با تشکر

shahriyar3
چهارشنبه 22 خرداد 1392, 16:36 عصر
خوب فرم html و هم بزار ببینم چجوریه؟

pirmard66
چهارشنبه 22 خرداد 1392, 22:21 عصر
اینم کد html خدمت شما :



<div class="up_img">
<form name="uo" method="post" action="up.php" enctype="multipart/form-data">
<li>
<label>انتخاب عکس :</label>
<input id="br" type="file" name="my_field1" size="32" />
<input id="br" type="file" name="my_field2" size="32" />
</li>
<input id="btn" type="submit" value="آپــلـود"/>
</form>
<form name="uow" method="post" action="nowaterup.php" enctype="multipart/form-data">
<li>
<label>آپلود عکس بدون واترمارک :</label>
<input id="brw" type="file" name="my_field" size="32" />
</li>
<input id="btnw" type="submit" value="آپــلـود بدون واترمارک"/>
</form>

</div>



منتظر راهنمایی...

با تشکر

shahriyar3
چهارشنبه 22 خرداد 1392, 22:54 عصر
الان کل کد html همینه؟!! یه دونه فیلد input گذاشتی میخوای 10 تا توش عکس آپلود کنی؟!!!

pirmard66
پنج شنبه 23 خرداد 1392, 00:57 صبح
الان کل کد html همینه؟!! یه دونه فیلد input گذاشتی میخوای 10 تا توش عکس آپلود کنی؟!!!

دوتاست داداش...

برا تست گذاشتم

بازم همون یکی رو اپ میکنه

(اون که یکی هست برا قسمت بدون واترمارکه!

pirmard66
شنبه 25 خرداد 1392, 22:23 عصر
دوستان کسی نظری نداره؟

من منتظرم

یعنی نمیشه؟

sh.n.n786
شنبه 25 خرداد 1392, 23:26 عصر
درود و ...
لطف کنید اسکریپتی که این کارو انجام میده رو پیوست کنید .
منظورم فقط یک صفحه نیست کل اسکریپته چون Database داره
در ضمن دوستان که گفته بودن File1 , File2 این اشتباه نیست اما به این شکل این کار انجام میشه


<form name="uow" method="post" action="nowaterup.php" enctype="multipart/form-data">
<input id="brw" type="file" name="my_field[]" size="32" />
<input id="brw" type="file" name="my_field[]" size="32" />
<input id="brw" type="file" name="my_field[]" size="32" />
<input id="btnw" type="submit" value="آپــلـود بدون واترمارک"/>
</form>

pirmard66
شنبه 25 خرداد 1392, 23:56 عصر
خدمت شما:



<html>
<head>
<meta http-equiv="refresh" content="4;url=uppic.php">
</head>
<?php
//set your db config
$con=mysql_connect("localhost" ,"*****" ,"******");
$sdb=mysql_select_db("l*****",$con);
//include class.upload for working with img
require_once ('class/up_cl.php');
for($i=1;$i<10;$i++)
{
if(isset($_FILES['my_field'.$i]))
{
$foo = new Upload($_FILES['my_field'.$i]);

if ($foo->uploaded)
{
// set your img name
//$foo->file_new_name_body=crypt(rand_string(12).time() );
// others setting that you want.
$foo->image_resize=false;
$foo->image_x=330;
$foo->image_y=220;
$foo->image_convert='jpeg';
$foo->jpeg_quality=100;
//border
$foo->image_border = 5;
$foo->image_border_color = '#FFF';
$foo->image_border_opacity = 100;
//water-mark
$foo->image_watermark = 'images/water-m.png';
$foo->image_watermark_x = 5;
$foo->image_watermark_y = -20;
// save in img folder
$foo->Process('pic/');

if ($foo->processed) {
//$aa=$foo->mime_magic;
$nameOfImg=$foo->file_src_name;
include ('time.php');
$dat= jdate('j/F/Y');
$opp=$foo->file_dst_name;
$sql="INSERT INTO pic (`img`,`date`,`fdn`) values ('".$nameOfImg."','".$dat."','".$opp."')";
$res=mysql_query($sql) or die (mysql_error($res));
} else
{
echo 'error : ' . $foo->error;
}
}

$sql="SELECT * FROM pic ORDER BY imgID DESC LIMIT 1";
$res=mysql_query($sql) or die (mysql_error($res));
while ($p=mysql_fetch_array($res))
{
echo "<img src=\"pic/".$p['fdn']."\" />";

}


}
}
?>
</html>

sh.n.n786
یک شنبه 26 خرداد 1392, 09:31 صبح
دوست عزیز شما کل اسکریپت رو zip کنید الان من نمیدونم دقیقا upload ورودیش چیه اگه upload متوده چرا با new صدا زده شده ؟
کل اسکریپتو zip کن بزاد تا بقیه ببینید خد حق دارند این بنده خداها و برا همین هم هست که تا حالا جواب درست نگرفتید

pirmard66
یک شنبه 26 خرداد 1392, 13:41 عصر
باور کنید با این سرعت همین که انجمن رو باز میکنم خیلیه....

از این کلاس استفاده کردم:

http://www.verot.net/php_class_upload.htm

pirmard66
دوشنبه 27 خرداد 1392, 22:34 عصر
دوستان یعنی کسی نمیتونه منو راه بندازه؟....تاپیک دو هفته ای داره میشه!!!

tito_igtyx
سه شنبه 28 خرداد 1392, 02:28 صبح
سلام دوست عزیز

فایل پیوست رو دانلود کن و هرجوری که دوست داری تغییر بده

موفق باشی

105740

pirmard66
سه شنبه 28 خرداد 1392, 14:38 عصر
با تشکر...

ولی میشه همون کلاسی که خودم گذاشتم رو دوستان چک کنن و یه راه حل برای اپلود چند تایی عکس بدن؟؟؟

کلاس زیر:

http://www.verot.net/php_class_upload.htm

abbas_ali
سه شنبه 28 خرداد 1392, 18:08 عصر
سلام
input ت رو به شکل array تعریف کن و بعد روش foreach بزن...
موفق باشی.

pirmard66
سه شنبه 28 خرداد 1392, 19:49 عصر
سلام
input ت رو به شکل array تعریف کن و بعد روش foreach بزن...
موفق باشی.

نتاسفانه جواب نداد...

فقط یکی اپلود میکنه


اساتید یعنی راهی نداره؟

rastac
سه شنبه 28 خرداد 1392, 20:11 عصر
سلام
در داخل تگ input از این مقدار استفاده کن: multiple=multiple اون وقت می تون چند تا عکس آپلود کنی

pirmard66
سه شنبه 28 خرداد 1392, 21:00 عصر
سلام
در داخل تگ input از این مقدار استفاده کن: multiple=multiple اون وقت می تون چند تا عکس آپلود کنی


با تشکر ولی متوجه نشدم!

rastac
سه شنبه 28 خرداد 1392, 21:26 عصر
با تشکر ولی متوجه نشدم!

<input type="file" name="x" multiple="multiple">

ehsan_savadkohi
چهارشنبه 29 خرداد 1392, 09:45 صبح
سلام دوست عزیز

فایل پیوست رو دانلود کن و هرجوری که دوست داری تغییر بده

موفق باشی

105740
حالا اگه بخوایم این اطلاعات را در دیتابیس ذخیره کنیم به چه صورته. یعنی برای یک کالا میخواهیم چند تا عکس ذخیره کنیم. باید چه کار کنیم؟؟؟؟؟؟؟؟
ممنون میشم کمک کنید

pirmard66
جمعه 07 تیر 1392, 16:14 عصر
یعنی کسی نمیتونه به ما در این مشکل کمک کنه!!!!!!

مشکل هنوز پابرجاست

spiderman200700
جمعه 07 تیر 1392, 17:12 عصر
این همین الآن تستم شده:


MultipleUpload.html
<html>
<body>
<form action="Uploader.php" method="post" enctype="multipart/form-data">
<input type="file" name="file[]" multiple>
<input type="submit" value="send" name="submitname">
</form>
</body>
</html>


Uploader.php


$newfiles = array();

foreach ($_FILES['file'] as $paramname => $paramvalue) {
foreach ((array) $paramvalue as $index => $value) {
$newfiles[$index][$paramname] = $value;
}
}
foreach ($newfiles as $index => $file) {
$path = 'files/' . $file['name'];
if (move_uploaded_file($file['tmp_name'], $path)) {
echo $file['name'] . ' Uploaded';
} else {
echo $file['name'] . ' did not Upload';
}
}

spiderman200700
جمعه 07 تیر 1392, 17:22 عصر
حالا اگه بخوایم این اطلاعات را در دیتابیس ذخیره کنیم به چه صورته. یعنی برای یک کالا میخواهیم چند تا عکس ذخیره کنیم. باید چه کار کنیم؟؟؟؟؟؟؟؟
ممنون میشم کمک کنید
به نظر من باید یه table در دیتابیس برای عکسها داشته باشیم. که اطلاعات عکس ها رو به اینصورت نگهداری کنه:


کد عکس
کد کالا
آدرس عکس


کد عکس کلید اصلی هست و کد کالا کلید خارجی .
حالا هر عکس مربوط به یک کالا هست و هر کالا میتونه چندین عکس داشته باشه. که با یه کوئری ساده آدرس همه عکس های یک کالا به دست میاد.