PDA

View Full Version : سوال: کد آپلود



sajadpm
جمعه 22 شهریور 1392, 06:09 صبح
با سلام و خسته نباشید خدمت دوستان

من این کد رو چند وقت پیش در تاپیک یکی از دوستان دیدم و زمانی که داشتم بررسیش می کردم برای خودم دیدم که ما فایل ها رو به $file میدیم بعد اصلا از اون ها در هنگام آپلود استفاده ای نمی کنیم در صورتی من کد رو هم تست کردم به خوبی کار می کرد . ممنون می شوم دوستان راهنمایی کنند .
سپاس فراوان


<?php

if(isset($_FILES['files'])){
$res = upload_multiple_file($_FILES['files'],"user_files");
echo $res;
}


function upload_multiple_file($file,$file_dir="user_files") {

$overwrite=0;
$allowed_file_type= array("pdf","ppt","pptx","xls"."xlxs","doc","docx" ,"jpg", "jpeg", "png", "gif");
$max_file_size = 2097152;

foreach($_FILES['files']['name'] as $fkey=> $fname){

$ext = pathinfo($fname, PATHINFO_EXTENSION);
if (!in_array($ext, $allowed_file_type)) {

return "unsupported file format";
break;
}


}

foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){


$file_name = $_FILES['files']['name'][$key];


$file_size =$_FILES['files']['size'][$key];


$file_tmp_name =$_FILES['files']['tmp_name'][$key];


$file_type=$_FILES['files']['type'][$key];


if($file_size >0) {
if($file_size > $max_file_size){

$fsize=$max_file_size/1048576;
return 'File size must be less than '.$fsize.' MB';
break;

}
}


if(is_dir($file_dir)==false){

$status = mkdir("$file_dir", 0700);

if($status < 1){

return "unable to create diractory $file_dir ";

}

}

if(is_dir($file_dir)){

if($overwrite < 1){

move_uploaded_file($file_tmp_name,"$file_dir/".$file_name);

}

}

// $file_upload_query="INSERT into user_uploads (`u_id`,`file_name`,`file_type`) VALUES('$user_id','$file_name','$file_size','$file _type'); ";
//mysql_query($file_upload_query);


}

return "Success save & upload";

}

?>


<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" multiple/>
<input type="file" name="files[]" multiple/>
<input type="file" name="files[]" multiple/>
<input type="submit" value="save & upload"/>
</form>

darkcms
جمعه 22 شهریور 1392, 10:29 صبح
با سلام و درود.
در تابع upload_multiple_file درست است ورودی file$ قرار داده شده است ولی هیچ گونه استفاده ای از این ورودی در درون تابع نشده است!
و اگر شما در فراخوانی تابع upload_multiple_file ورودی اول را چیز دیگری قرار دهید هیچ اتفاقی نمی افتد و تابع بر اساس $_FILES['files'] کار خواهد کرد!
به امید فردایی بهتر!:لبخندساده:

AliRezaPro
جمعه 22 شهریور 1392, 11:07 صبح
این تابع 2 پارامتر میگیرد , بری اینکه پارامترها به درستی کارکنند باید کد را دست بزنید , باید پارامتر اول را خود فایل را بفرستید و پارامتر دوم هم dynamic است که اگر می خواهید تغییر دهید باید مقدار جدید بفرستید . اگر نیازی ندارید و کدتان هم ثابت است میتوانید پارامترها را پاک کنید