PDA

View Full Version : گفتگو: مشکل در ایجاد فرم آپلود چندگانه



فرزاد صبوری
جمعه 27 دی 1392, 10:36 صبح
سلام و خسته نباشید من برای ایجاد یه سی ام اس برای دانلود app android از سی ام اس اقای شهرکی استفاده کردم ولی هر کاری کردم نتونستم ( بلد نبودم ) فیلد های مورد نظرمو اضافه کنم تو صفحه ارسال پست جدید به شکل زیر :) پیشاپیش ممنونم ازتون خیلی چیز ها یاد گرفتم ازتون ♥

http://upload.tehran98.com/upme/uploads/df49a549b629833e1.jpghttp://upload.tehran98.com/upme/uploads/f67c5496e716183c2.jpg

فرزاد صبوری
جمعه 27 دی 1392, 11:00 صبح
سی ام اس اقای شهرکی 115481

فرزاد صبوری
جمعه 27 دی 1392, 12:09 عصر
دوستان عزیز فقط بهم کمک کنید چطور میشه به این سی ام اس فیلد اپلود اضافه کرد مشکلم حل میشه :)

p30online
جمعه 27 دی 1392, 12:22 عصر
سلام دوست عزیز:
این سایت خوبیه خیلی از کارها رو انجام داده مشاهده (http://sourcecodester.com/)

danial.saeedi
جمعه 27 دی 1392, 12:43 عصر
دوست عزیز برای اینکه فیلد اپلود بزاری از خاصیت file استفاده می کنیم.تگ html نمی تونه کاری انجام بده.درضمن در حوصله این تاپیک نمی گنجد در مورد اپلود فایل در php بخث کنیم.می تونی از لینک زیر ایده بگیری:
http://www.w3schools.com/php/php_file_upload.asp
http://www.php.net/manual/en/features.file-upload.php
موفق باشید.

فرزاد صبوری
جمعه 27 دی 1392, 13:49 عصر
ممنونم دوستان مثلا من میخوام یه فیلد اپلود اضافه کنم

فیلد اول این کد هست


<input type="hidden" name="MAX_FILE_SIZE" value="1048576">
<input type="file" class="transparent" id="file" name="file" size="15">

فیلد دوم رو هم به این شکل اضافه کردم


<input type="hidden" name="MAX_FILE_SIZE" value="1048576">
<input type="file" class="transparent" id="file2" name="file" size="15">

چه تغییری تو این قسمت بدم که فایلم ذخیره بشه و پست ثبت بشه


if(isset($_GET['action']) && $_GET['action'] != '') {
$articles = new Articles();
switch(strtolower($_GET['action'])) {
case 'new':
$flag = true;
$result = 0;
if(!(isset($_FILES['file'])) || $_FILES['file']['error'] != 0) {
$flag = false;
}
$vars = array('abstract', 'body', 'title');
foreach($vars as $var) {
if(!isset($_POST[$var]) || $_POST[$var] == '') {
$flag = false;
}
}
if($flag && move_uploaded_file($_FILES['file']['tmp_name'], '../files/'.$_FILES['file']['name'])) {
$result = $articles->Insert($_POST['title'], $_POST['abstract'], $_POST['body'], $_FILES['file']['name']);
}
echo 'مطلب '.($result > 0 ? 'با موفقيت ثبت شد' : 'ثبت نشد').'.<br/>'."\n";
break;

فرزاد صبوری
جمعه 27 دی 1392, 14:37 عصر
up :لبخندساده:

p30online
جمعه 27 دی 1392, 14:40 عصر
فکر کنم اگر شما



'../files/'

را به غقب برگشت ندهید و در همان جا یه پوشه به نام file بسازید آپلود می شود

فرزاد صبوری
جمعه 27 دی 1392, 14:49 عصر
ممنون ولی من فکر کنم باید این کد رو دوبار تکرار کرد البته چیزی که من فهمیدم اینه


move_uploaded_file($_FILES['file']['tmp_name'], '../files/'.$_FILES['file']['name']

move_uploaded_file($_FILES['file2']['tmp_name'], '../files/'.$_FILES['file2']['name']

اما چطور تکرار کنم و اینکه چطوری ثبت کنم رو باز بلد نیستم :)

danial.saeedi
جمعه 27 دی 1392, 15:44 عصر
باید اول یک اپلودر درست کنی:

input type="file" class="transparent" id="file3" name="file" size="15">
بعد هم باید اون فایل رو انقال بدی:

move_uploaded_file($_FILES['file3']['tmp_name'], '../files/'.$_FILES['file3']['name']
موفق و پیروز باشید.

فرزاد صبوری
جمعه 27 دی 1392, 17:16 عصر
اینا رو میدونم دانیال عزیز مشکلم ثبت نشدنش هست تو صفحه موضیع جدید پیغام پست ثبت نشد میده ! کد ها تو این پست (http://barnamenevis.org/showthread.php?436969-%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA-%DA%A9%D9%85%DA%A9-%D8%A7%D8%B2-php-%DA%A9%D8%A7%D8%B1-%D9%87%D8%A7%DB%8C-%D8%B9%D8%B2%DB%8C%D8%B2&p=1955614&viewfull=1#post1955614)

فرزاد صبوری
جمعه 27 دی 1392, 20:40 عصر
up :لبخندساده:

فرزاد صبوری
جمعه 27 دی 1392, 22:09 عصر
up :ناراحت:

فرزند کوروش
شنبه 28 دی 1392, 08:39 صبح
عکست تو پوشه مورد نظرت کپی میشه یا نه؟
اگر کپی نمیشه احتمالا مقدار $flag رو داره false برمیگردونه
قبل از if این کد رو بزار

var_dump($_FILES['file']);
فایلتو ارسال کن ببین مقدار میگیره یا نه؟

فرزاد صبوری
یک شنبه 29 دی 1392, 09:36 صبح
up خواهشا کمک کنید

MMSHFE
یک شنبه 29 دی 1392, 10:14 صبح
این کد فرم ایجاد article جدیده (فایل management/article_new.php) :


<form action="article_result.php?action=new" method="post">
<input name="MAX_FILE_SIZE" type="hidden" value="1048576" />
<table border="0" width="500" cellpadding="0" cellspacing="2">
<tr align="right" valign="middle">
<th width="100"><label for="title">عنوان</label></th>
<td width="400"><input class="transparent" id="title" maxlength="255" name="title" style="width: 100%;" type="text" /></td>
</tr>
<tr align="right" valign="middle">
<th><label for="abstract">چكيده</label></th>
<td><input class="transparent" id="abstract" maxlength="255" name="abstract" style="width: 100%;" type="text" /></td>
</tr>
<tr align="right" valign="middle">
<th><label for="body">ادامه مطلب</label></th>
<td><textarea class="transparent" id="body" name="body" rows="5" style="width: 100%;"></textarea></td>
</tr>
<tr align="right" valign="middle">
<th><label for="apk">APK</label></th>
<td><input class="transparent" id="apk" name="apk" maxlength="255" style="width: 100%;" type="file" /></td>
</tr>
<tr align="right" valign="middle">
<th><label for="icon">Icon</label></th>
<td><input class="transparent" id="icon" name="icon" maxlength="255" style="width: 100%;" type="file" /></td>
</tr>
<tr align="right" valign="middle">
<th><label for="pic1">Pic 1</label></th>
<td><input class="transparent" id="pic1" name="pic1" maxlength="255" style="width: 100%;" type="file" /></td>
</tr>
<tr align="right" valign="middle">
<th><label for="pic2">Pic 2</label></th>
<td><input class="transparent" id="pic2" name="pic2" maxlength="255" style="width: 100%;" type="file" /></td>
</tr>
<tr align="right" valign="middle">
<th><label for="pic3">Pic 3</label></th>
<td><input class="transparent" id="pic3" name="pic3" maxlength="255" style="width: 100%;" type="file" /></td>
</tr>
<tr align="right" valign="middle">
<td colspan="2"><input value="ثبت" style="width: 100%;" type="submit" /></td>
</tr>
</table>
</form>

حالا توی managemengt/article_result.php کد زیر رو در قسمت case مربوط به 'new' بنویسید:


...
case 'new':
$flag = true;
$result = 0;
$vars = array('abstract', 'body', 'title');
foreach($vars as $var) {
if(!isset($_POST[$var]) || $_POST[$var] == '') {
$flag = false;
}
}
if($flag) {
$files = array('apk', 'icon', 'pic1', 'pic2', 'pic3');
foreach($files as $file) {
$f = &$_FILES[$file];
if($f['error'] == 0 && $f['size'] <= 1048576) {
move_uploaded_file($f['tmp_name'], '../files/' . $f['name']);
}
}
$result = $articles->Insert(
$_POST['title'],
$_POST['abstract'],
$_POST['body'],
$_FILES['apk']['name'],
$_FILES['icon']['name'],
$_FILES['pic1']['name'],
$_FILES['pic2']['name'],
$_FILES['pic3']['name']
);
}
echo 'مطلب '.($result > 0 ? 'با موفقيت ثبت شد' : 'ثبت نشد').'.<br/>'."\n";
break;
...

البته باید توی ساختار دیتابیس هم جدول articles رو تغییر بدین که 5 تا فیلد برای اسامی فایلها داشته باشه. متد Insert در کلاس Articles رو هم تو فایل db.php تغییر بدین تا پارامترهای اضافه رو قبول کنه و در دیتابیس عمل درج رو انجام بده.

فرزاد صبوری
یک شنبه 29 دی 1392, 10:29 صبح
بسیار ممنونم اقای شهرکی عزیز این کد اگه جواب نده دیگه دست میکشم از این کاررررررررر :بامزه::قلب:

فرزاد صبوری
چهارشنبه 02 بهمن 1392, 19:15 عصر
up مشکلم حل نشد

MMSHFE
چهارشنبه 02 بهمن 1392, 20:01 عصر
توی پیام خصوصی اطلاعات TeamViewer رو برام پیام خصوصی کنید تا روی سیستم خودتون، مشکل رو رفع کنم و در عمل ببینید چطور باید کار کنید.