PDA

View Full Version : آپلود فایل های ویدئویی و صوتی با php



parnian~parnian
سه شنبه 01 تیر 1395, 11:05 صبح
سلام دوستان


من توی یکی از برنامه هام به یه مشکل بزرگ برخورد کردم
توی یکی از قسمت های پورتال نیاز دارم که چند تا فایل رو اعم از صوتی ویدئویی تصویر آپلود کنه کاربر. من قبلا کد آپلود نوشتم برای تصاویر و مشکلی نداشته ولی الان توی بحث فایل های صوتی و ویدئویی به مشکل برخوردم . کدی که نوشتم 3 مشکل داره که توی کدهای سایت های خارجی هم گشتم و تست کردم بازم این مشکل رو داشت :

1- یه فایل انتخاب میکنی و روی دکمه ثبت کلیک میکنی ....................... مشکل : توی زمان چک کردن میگه اصلن روی دکمه ثبت کلیک نکردی که مطئمنم مشکل از اپلود فایل بوده ................... یعنی به جای اینکه وارد if بشه اولش میره خط 135 و redirect میکنه به صفحه
2- یه فایل انتخاب میکنی و روی دکمه ثبت کلیک میکنی ....................... مشکل : متوجه میشه که روی دکمه ثبت کلیک کردی و وارد کدها میشه ولی میگه فایلی انتخاب نکردی !................. مثلا وارد if خط 27 میشه درحالی که فایل انتخاب شده! و باید بره توی else
3- اپلود فایل هایی با حجم بالا



<?php



if(isset($_POST['submit']))
{
if(empty($_POST['title']) )
{
$_SESSION['msg']='<div class="alert alert-danger" role="alert"><a class="close" data-dismiss="alert">×</a>ویرایش با مشکل مواجعه شده لطفا کلیه موارد خواسته شده را پر کنید .</div>';
$security->Redirect("../selflink","empty=8020");
}
else{


///////////////////////////////////////////////
$file_video1="";
$file_sound1="";
$file_image1="";
if ($_FILES['file_video']['size'] > 999000 ) {

$_SESSION['msg']='<div class="alert alert-danger" role="alert"><a class="close" data-dismiss="alert">×</a>حجم فایل آپلود شده بیشتر از حد مجاز است .</div>';
$security->Redirect("../selflink","typeerror=1339");

}else{

if($_FILES['file_video']['error']>0)
{
//$_SESSION['msg']='<div class="alert alert-danger" role="alert"><a class="close" data-dismiss="alert">×</a>ثبت با مشکل مواجعه شده لطفا اطلاعات ورودی را بررسی کنید .</div>';
//$security->Redirect("../selflink","inserterror=1139");
}else{
if(is_uploaded_file($_FILES['file_video']['tmp_name']))
{
$white=array('.mp4');
$file=strrchr($_FILES['file_video']['name'],'.');
if(in_array($file,$white))
{

$filename=$_FILES['file_video']['name'];
$file=md5($filename.microtime()).substr($filename,-5,5);
move_uploaded_file($_FILES['file_video']['tmp_name'],"../upload/".$file);

$file_video1=$file;


}
else{
$_SESSION['msg']='<div class="alert alert-danger" role="alert"><a class="close" data-dismiss="alert">×</a>ثبت با مشکل مواجعه شده لطفا اطلاعات ورودی را بررسی کنید .</div>';
$security->Redirect("../selflink","typeerror=1339");
}

}
}
}
if ($_FILES['file_sound']['size'] > 999000 ) {

$_SESSION['msg']='<div class="alert alert-danger" role="alert"><a class="close" data-dismiss="alert">×</a>حجم فایل آپلود شده بیشتر از حد مجاز است .</div>';
$security->Redirect("../selflink","typeerror=1339");

}else{

if($_FILES['file_sound']['error']>0)
{
$_SESSION['msg']='<div class="alert alert-danger" role="alert"><a class="close" data-dismiss="alert">×</a>ثبت با مشکل مواجعه شده لطفا اطلاعات ورودی را بررسی کنید .</div>';
//$security->Redirect("../selflink","inserterror=1139");
}else{
if(is_uploaded_file($_FILES['file_sound']['tmp_name']))
{
$white=array('.mp3');
$file=strrchr($_FILES['file_sound']['name'],'.');
if(in_array($file,$white))
{


$filename=$_FILES['file_sound']['name'];
$file=md5($filename.microtime()).substr($filename,-5,5);
move_uploaded_file($_FILES['file_sound']['tmp_name'],"../upload/".$file);

$file_sound1=$file;


}
else{
$_SESSION['msg']='<div class="alert alert-danger" role="alert"><a class="close" data-dismiss="alert">×</a>ثبت با مشکل مواجعه شده لطفا اطلاعات ورودی را بررسی کنید .</div>';
$security->Redirect("../selflink","typeerror=1339");
}


}

}

}
if($_FILES['file_image']['error']>0)
{
//$_SESSION['msg']='<div class="alert alert-danger" role="alert"><a class="close" data-dismiss="alert">×</a>ثبت با مشکل مواجعه شده لطفا اطلاعات ورودی را بررسی کنید .</div>';
//$security->Redirect("../selflink","inserterror=1139");
}else{
if(is_uploaded_file($_FILES['file_image']['tmp_name']))
{
$white=array('.png','.gif','.jpg');
$file=strrchr($_FILES['file_image']['name'],'.');
if(in_array($file,$white))
{
$filename=$_FILES['file_image']['name'];
$file=md5($filename.microtime()).substr($filename,-5,5);
move_uploaded_file($_FILES['file_image']['tmp_name'],"../upload/".$file);

$file_image1=$file;

}
else{
$_SESSION['msg']='<div class="alert alert-danger" role="alert"><a class="close" data-dismiss="alert">×</a>ثبت با مشکل مواجعه شده لطفا اطلاعات ورودی را بررسی کنید .</div>';
$security->Redirect("../selflink","typeerror=1339");
}


}
}
///////////////////////////////////////////////







} // else empty

}




else{
$security->Redirect("../selflink");
}


?>





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

پیام حیاتی
سه شنبه 01 تیر 1395, 12:09 عصر
https://m.youtube.com/results?q=upload%20video%20and%20audio%20in%20php&sm=3

parnian~parnian
شنبه 05 تیر 1395, 16:57 عصر
دوستان عزیز کسی دلیل این اتفاق رو نمیدونه چیه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ چرا اینطوری میشه ؟ بعضی فایل ها اپ میشه و بعضی نمیشه؟

Unique
یک شنبه 06 تیر 1395, 15:40 عصر
error_reporting را فعال کردین ؟ شاید خطا میده و خطا را نمیبینید. log را فعال کنید ببینین خطا از php هست یا نه.

parnian~parnian
چهارشنبه 09 تیر 1395, 18:17 عصر
تست کردم هیچ ارروری ندارهههههههههههههه ..............
این برای من خیلی مهمههههه اگه سروکارتون با فایل های صوتی تصویری بخوره متوجه میشین چی میگمممم واقعا اگه میدونین بگین دوستان عزیز

مهرداد سیف زاده
چهارشنبه 09 تیر 1395, 22:34 عصر
روش کدنویسی شما کمی اشتباه هست
شما از تابع isset استفاده کردی. بعدش اگر true باشه اومدید از empty استفاده کردید
از همون isset کردید کافی هست. بعدش کد زیر رو اجرا بگیرید ببینید با submit کردن اصلا چی برای سرور میره. شاید فرمتون مشکل داره. همچنین debug مرورگر رو هم فعال کنید و trace بگیرید. دوستان هم گفتن که error_reporting رو برای php فعال کنید


<?php
print_r($_FILES);

saeedvir
پنج شنبه 10 تیر 1395, 04:49 صبح
شاید فراموش کردید enctype برای تگ form تعریف کنید....

parnian~parnian
شنبه 12 تیر 1395, 15:14 عصر
شاید فراموش کردید enctype برای تگ form تعریف کنید....

خیلی ممنون ازتون :لبخند::لبخند::لبخند::لبخند:: بخند::لبخند::لبخند: ولی من چند ساله که پرتال طراحی میکنم برای سازمان ها فراموش نمیکنم این چیز ها رو مخصوصا این که چند هفتس اعصاب برام نذاشته

parnian~parnian
شنبه 12 تیر 1395, 15:16 عصر
روش کدنویسی شما کمی اشتباه هست
شما از تابع isset استفاده کردی. بعدش اگر true باشه اومدید از empty استفاده کردید
از همون isset کردید کافی هست. بعدش کد زیر رو اجرا بگیرید ببینید با submit کردن اصلا چی برای سرور میره. شاید فرمتون مشکل داره. همچنین debug مرورگر رو هم فعال کنید و trace بگیرید. دوستان هم گفتن که error_reporting رو برای php فعال کنید


<?php
print_r($_FILES);



خیلی ممنون واقعا ولی متاسفانه هز چی تست میکنم هیچ مشکلی وجود نداره :گیج::گیج::گیج: من که گیج شدم
اون بخشی که توضیح دادین درسته برای اطمینان بیشتر اون طوری نوشتم ولی ربطی به اصل موضوع نداره اخه

مهرداد سیف زاده
شنبه 12 تیر 1395, 16:03 عصر
خیلی ممنون واقعا ولی متاسفانه هز چی تست میکنم هیچ مشکلی وجود نداره :گیج::گیج::گیج: من که گیج شدم
اون بخشی که توضیح دادین درسته برای اطمینان بیشتر اون طوری نوشتم ولی ربطی به اصل موضوع نداره اخه

پس ریموت بدید ببینم مشکلش چی هست

parnian~parnian
شنبه 12 تیر 1395, 22:53 عصر
پس ریموت بدید ببینم مشکلش چی هست


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

parnian~parnian
سه شنبه 05 مرداد 1395, 16:48 عصر
من هنوز مشکلم حل نشده گفتم در جریان باشین دوستان اگه کسی جواب سوال منو فهمید لطف کنههههههههههههههههههههههه :لبخند::لبخند::لبخند::لبخند:: بخند::لبخند::لبخند:

spiderman200700
چهارشنبه 06 مرداد 1395, 11:42 صبح
مشکل از سایز فایل نیست؟
شاید حجم فایل بیشتر از حجم تنظیم شده در فایل php.ini هست!

parnian~parnian
جمعه 08 مرداد 1395, 22:21 عصر
صحبت شما درسته کاملا ممنون ازتون اینم یکی از مشکلات بود ولی مشکل اصلی اینه که وقتی فایل رو انتخاب میکنی و روی دکمه submit کلیک میکنی .......... میگه روی دکمه کلیک نکردی !!!!
واقعا گیج شدم ..