کد:
<?
error_reporting(7);
/*
//================================================================================
* phphq.Net Custom PHP Scripts *
//================================================================================
:- Script Name: phUploader
:- Version: 1.2
:- Release Date: June 23rd 2004
:- Last Updated: Dec 10th 2005
:- Author: Scott L. <scott@phphq.net> http://www.phphq.net
:- Copyright (c) 2005 All Rights Reserved
:-
*/
// Max size PER file in KB, not bytes for simplicity!
$max_file_size="800";
// Max size for all files COMBINED in KB, not bytes for simplicity!
$max_combined_size="4000";
//How many file uploads do you want to allow at a time?
$file_uploads="5";
//The name of the uploader..
$websitename="ارسال عكس";
// Use random file names? true=yes (recommended), false=use original file name. Random names will help prevent overwritting of existing files!
$random_name=true;
// Please keep the array structure.
$allow_types=array("jpg","gif","bmp","png");
// Path to files folder. If this fails use $fullpath below. With trailing slash
$folder="./picts/01/";
// Full url to where files are stored. With Trailing Slash
$full_url="http://dl.sepna.com/picts/01/";
// Only use this variable if you wish to use full server paths. Otherwise leave this empty! With trailing slash
$fullpath="";
//Use this only if you want to password protect your uploads.
$password="";
/*
//================================================================================
* ! ATTENTION !
//================================================================================
: Don't edit below this line unless you know some php. Editing some variables or other stuff could cause undeseriable results!!
*/
// MD5 the password.. why not?
$password_md5=md5($password);
// If you set a password this is how they get verified!
If($password) {
If($_POST['verify_password']==true) {
If(md5($_POST['check_password'])==$password_md5) {
setcookie("phUploader",$password_md5,time()+86400);
sleep(1); //seems to help some people.
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
}
}
// The password form, if you set a password and the user has not entered it this will show.
$password_form="";
If($password) {
If($_COOKIE['phUploader']!=$password_md5) {
$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
$password_form.="<table align=\"center\" class=\"table\">\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Password Required</td>\n";
$password_form.="</tr>\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"35%\" class=\"table_body\">Enter Password:</td>\n";
$password_form.="<td width=\"65%\" class=\"table_body\"><input type=\"password\" name=\"check_password\" /></td>\n";
$password_form.="</tr>\n";
$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
$password_form.="<input type=\"submit\" value=\" Verify Password \" />\n";
$password_form.="</td>\n";
$password_form.="</tr>\n";
$password_form.="</table>\n";
$password_form.="</form>\n";
}
}
// Function to get the extension a file.
function get_ext($key) {
$key=strtolower(substr(strrchr($key, "."), 1));
// Cause there the same right?
$key=str_replace("jpeg","jpg",$key);
return $key;
}
$ext_count=count($allow_types);
$i=0;
foreach($allow_types AS $extension) {
//Gets rid of the last comma for display purpose..
If($i <= $ext_count-2) {
$types .="*.".$extension.", ";
} Else {
$types .="*.".$extension;
}
$i++;
}
unset($i,$ext_count); // why not
$error="";
$display_message="";
$uploaded==false;
// Dont allow post if $password_form has been populated
If($_POST['submit']==true AND !$password_form) {
For($i=0; $i <= $file_uploads-1; $i++) {
If($_FILES['file']['name'][$i]) {
$ext=get_ext($_FILES['file']['name'][$i]);
$size=$_FILES['file']['size'][$i];
$max_bytes=$max_file_size*2048;
// For random names
//If($random_name){
// $file_name[$i]=time()+rand(0,100000).".".$ext;
//} Else
{
$file_name[$i]=$_FILES['file']['name'][$i];
}
//Check if the file type uploaded is a valid file type.
If(!in_array($ext, $allow_types)) {
$error.= " اشتباه است ".$_FILES['file']['name'][$i]." فرمت فايل شما <br /> مجاز ميباشند ".$types." فقط فرمتهاي <br />فايل شما <b>نميتواند</b>آپلود شود <br />";
//Check the size of each file
} Elseif($size > $max_bytes) {
$error.= "خيلي بزرگ است ".$_FILES['file']['name'][$i]." فايل شما <br /> کيلوبايت است ".$max_file_size." حداکثر اندازه فايل <br />فايل شما <b>نميتواند</b>آپلود شود <br />";
// Check if the file already exists on the server..
} Elseif(file_exists($folder.$file_name[$i])) {
$error.= " ".$_FILES['file']['name'][$i]." فايلي با نام <br />. در اين سرور وجود دارد ، لطفا فايل خود را تغيير نام دهيد<br />فايل شما <b>نميتواند</b>آپلود شود <br />";
}
} // If Files
} // For
//Tally the size of all the files uploaded, check if it's over the ammount.
$total_size=array_sum($_FILES['file']['size']);
$max_combined_bytes=$max_combined_size*2048;
If($total_size > $max_combined_bytes) {
$error.="حداکثر حجم مجاز براي تمام فايل هاي ترکيب شده شما".$max_combined_size." کيلوبايت است<br />";
}
// If there was an error take notes here!
If($error) {
$display_message=$error;
} Else {
// No errors so lets do some uploading!
For($i=0; $i <= $file_uploads-1; $i++) {
If($_FILES['file']['name'][$i]) {
If(@move_uploaded_file($_FILES['file']['tmp_name'][$i],$folder.$file_name[$i])) {
$uploaded=true;
} Else {
$display_message.="Couldn't copy ".$file_name[$i]." to server, please make sure ".$folder." is chmod 777 and the path is correct.\n";
}
}
} //For
} // Else
} // $_POST AND !$password_form
/*
//=======================================================
* Start the form layout
//======================================================
:- Please know what your doing before editing below. Sorry for the stop and start php.. people requested that I use only html for the form..
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ارسال عكس به سايت </title>
<link href="http://sepna.com/favicon.ICO" rel="shortcut icon">
<script type="text/javascript" src="/tooltip.js"> </script>
<link rel="StyleSheet" href="/style.css" type="text/css" />
<style type="text/css">
body{
background-color:#FFFFFF;
font-family: Tahoma, Arial, sans-serif;
font-size: 9pt;
color: #000000;
}
.error_message{
font-family: Tahoma, Arial, sans-serif;
font-size: 9pt;
color: #FF0000;
}
.uploaded_message{
font-family: Tahoma, Arial, sans-serif;
font-size: 9pt;
color: #000000;
}
a:link{
text-decoration:none;
color: #000000;
}
a:visited{
text-decoration:none;
color: #000000;
}
a:hover{
text-decoration:none;
color: #ff0000;
}
.table {
border-collapse:collapse;
border:1px solid #000000;
width:450px;
}
.table_header{
border:1px solid #070707;
background-color:#3399FF;
font-family: Tahoma, Arial, sans-serif;
font-size: 10pt;
font-weight:bold;
color: #FFFFFF;
text-align:center;
padding:2px;
}
.upload_info{
border:1px solid #070707;
background-color:#EBEBEB;
font-family: Tahoma, Arial, sans-serif;
font-size: 8pt;
color: #000000;
padding:4px;
}
.table_body{
border:1px solid #070707;
background-color:#EBEBEB;
font-family: Tahoma, Arial, sans-serif;
font-size: 10pt;
color: #000000;
padding:2px;
}
.table_footer{
border:1px solid #070707;
background-color:#3399FF;
text-align:center;
padding:2px;
}
input,select,textarea {
font-family: Tahoma, Arial, sans-serif;
font-size: 9pt;
color: #000000;
background-color:#AFAEAE;
border:1px solid #000000;
}
.copyright {
border:0px;
font-family: Tahoma, Arial, sans-serif;
font-size: 9pt;
color: #000000;
text-align:right;
}
form{
padding:0px;
margin:0px;
}
</style>
<?
If($password_form) {
Echo $password_form;
} Elseif($uploaded==true) {?>
<table align="center"class="table">
<tr>
<td colspan="2"><b>فايلهاي شما با موفقيت آپلود گرديد</b> </td>
</tr>
<tr>
<td>
<br />
<?
For($i=0; $i <= $file_uploads-1; $i++) {
If($_FILES['file']['name'][$i]) {
$file=$i+1;
Echo("<b>آدرس فايل- ".$file.":</b> <a href=\"".$full_url.$file_name[$i]."\" target=\"_blank\">".$full_url.$file_name[$i]."</a><br /><br />\n");
}
}
?>
<br />
<a href="<?=$_SERVER['PHP_SELF'];?>">بازگشت </a>
<br />
</td>
</tr>
</table>
<?} Else {?>
<?If($display_message){?>
<div align="center"><?=$display_message;?></div>
<br />
<?}?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" name="phuploader">
<table align="center"class="table">
<tr>
<td colspan="2"><b><?=$websitename;?></b> </td>
</tr>
<tr>
<td colspan="2">
<p align="right">
<?=$types?><b> :فرمتهاي مجاز </b><br />
<b>حداکثر اندازه براي هر فايل :</b> <?=$max_file_size?> کيلوبايت <br />
<b>حداکثر اندازه براي همه فايلهاي ترکيب شده :</b> <?=$max_combined_size?> کيلوبايت <br />
</td>
</tr>
<?For($i=0;$i <= $file_uploads-1;$i++) {?>
<tr>
<td width="20%"><b>انتخاب فايل:</b> </td>
<td width="80%"><input type="file" name="file[]" size="30" /></td>
</tr>
<?}?>
<tr>
<td colspan="2" align="center">
<input type="hidden" name="submit" value="true" />
<input type="submit" value=" آپلودش کن" />
</td>
</tr>
</table>
</form>
<?}//Please leave this here.. it really dosen't make people hate you or make your site look bad.. ?>
<table style="border:0px;" align="center">
<tr>
<td><div>©
<b><a href="/photo.php" title="send photo"> عكس </a> </b>|
<a href="/video.php" title="send video"> ويديو</a> |
<a href="/music.php" title="send music"> موزيك</a> |
<a href="/others.php" title="send other files"> فايلهاي ديگر</a> <br><br>
</div></td>
</tr>
</table>
</body>
</html>
البته ما در فايل بالا استايلها هم درون خود فايل ايجاد كرديم ، شما ميتوانيد استايل ها را پاك كنيد و در يك فايل جداگانه قرار دهيد . اين كار به خاطر اين هست كه اگر خواستيد استايل صفحه را تغيير دهيد مجبور نشويد يكى يكى فايلها را باز كنيد و تغييرات ايجاد كنيد .
قبل از ذخيره فايل به نكات زير توجه كنيد :
تعيين كردن اندازه فايل جهت آپلود شدن ( در اينجا مقدار به كيلوبايت مد نظر هست ، يعنى اگر فايل بيش از 800 كيلوبايت حجم داشت را آپلود نكن )
کد:
$max_file_size="800";
تعيين كردن تعداد انتخابهاى فايل جهت آپلود شدن در يك لحظه
تعيين كردن تمام فايلهاى انتخاب شده در يك لحظه ( 5 تا فايل قابل انتخابن و هر كدام تا 800 كيلوبايت اجازه آپلود شدن دارن در نتيجه مقدار مجاز براى تمامى فايلها بايد بيش از 4000 كيلوبايت نشود )
کد:
$max_combined_size="4000";
تعيين كردن نام آپلود سنتر .
کد:
$websitename="ارسال عكس";
تنظيم كردن نام تصادفى ( در صورت انتخاب true از دوباره نويسى فايلهاى هم نام جلوگيرى ميشود . )
تعيين كردن فرمتهاى قابل مجاز جهت آپلود . ( اگر ميخواهيد فقط از يك فايل جهت آپلود سنتر استفاده كنيد ميتوانيد تمامى فرمتهاى دلخواه و مورد نظر خودتان را در اين قسمت بنويسيد . )
کد:
$allow_types=array("jpg","gif","bmp","png");
تعيين كردن مسير دايركتورى جهت فايلهاى آپلود شده . ( اگر ميخواهيد از شلوغ كارى پرهيز كنيد بهتر است مسير دايركتورى هر فايل را جداگانه قرار دهيد .
کد:
$folder="./picts/01/";
تعيين كردن آدرس كامل فايلهاى ذخيره شده . در آخر آدرس حتما علامت اسلش / بگذاريد. ( متناسب با آدرس سايت و مسير دايركتورى فايلها كه در قسمت بالا تعيين كرديد )
کد:
$full_url="http://dl.sepna.com/picts/01/";
قرار دادن رمز عبور جهت استفاده شخصى ( اگر ميخواهيد همه بتوانند فايل آپلود كنند به همين صورت قرار دهيد )
جهت تغيير دادن استايل لينكها كد هاى زير را ميتوانيد تغيير دهيد .
a:link ( نمايش رنگ لينكها) ، a:visited (نمايش رنگ لينكهاى كليك شده) ، a:hover (نمايش رنگ لينكها به هنگام قرار گرفتن ماوس بر روى آنها )
کد:
a:link{
text-decoration:none;
color: #000000;
}
a:visited{
text-decoration:none;
color: #000000;
}
a:hover{
text-decoration:none;
color: #ff0000;
}
تعيين آدرس لينكها و تعويض لينك آپلود سنتر در صورت جدا سازى فايلها ( در صورت انتخاب آپلود سنتر جداگانه بايد يك كپى از فايل photo.php بگيريد و براى فايلهاى ديگر استفاده كنيد . به طور مثال براى فايلهاى ويديويى video.php و براى فايل هاى صوتي music.php و براى فايلهاى ديگر others.php تغيير نام دهيد و تنظيمات هر فايل را مطابق روش بالا تغيير دهيد . از جمله تعيين فايلها و اندازه فايلها و فرمتهاى مجاز و تغيير نام آپلود سنتر و در صورت دلخواه تعيين مسير دايركتورى و تعيين مسير آدرس فايلهاى ذخيره شده و .... )
کد:
<b><a href="/photo.php" title="send photo"> عكس </a> </b>|
<a href="/video.php" title="send video"> ويديو</a> |
<a href="/music.php" title="send music"> موزيك</a> |
<a href="/others.php" title="send other files"> فايلهاي ديگر</a> <br><br>
جهت زيبا سازى صفحات ما دو تا فايل ايجاد كرده ايم كه امكان نمايش tool-tip ها به صورت شيشه اى را فراهم ميكند . ( اين فايلها در قسمت پيوست قرار گرفته اند )
کد:
<link href="http://sepna.com/favicon.ICO" rel="shortcut icon">
<script type="text/javascript" src="/tooltip.js"> </script>
<link rel="StyleSheet" href="/style.css" type="text/css" />
خط اول آدرس فايو آيكن سايت را نشان ميدهد و خطهاى بعدى مربوط به استايل شيشه اى توضيحات لينكهاست . اين تنظيمات اختيارى هستن و ميتوانيد ناديده بگيريد يا حذف كنيد .
تنظيماتى كه خيلى ضرورى بودن بيان شد اما شما ميتوانيد تنظيمات جزئى ديگر مانند رنگ آپلود سنتر و جداول را به طور دلخواه تغيير دهيد .
چند تا پوشه همنام فايلهايى كه ساخته ايد درون پوشه dl قرار دهيد .
music
picts
others
video
و نكته آخر : اگر ميخواهيد شلوغ كارى نشود و به صورت منظم فايلها آپلود شوند يك پوشه با نام01 هم درون هر يك از پوشه ها قرار دهيد .بعد از مدتى نياز ميشود كه فايلها بازرسى و بازبينى شوند و فايل ها را منظم كنيد و يا فايلهاى غير ضرورى را حذف كنيد يك پوشه ديگر با نام 02 ايجاد كنيد و بعد از تعيين مسير در فايل از اين پس فايلها در پوشه 02 آپلود و ذخيره خواهند شد .
طريقه استفاده از آپلود سنتر در انجمن mybb به صورت زير هست :
ابتدا تصوير آپلود
را در پوشه images قرار دهيد .
وارد كنترل پنل انجمن سايت خودتان شويد و روى گزينه قالب ها و پوسته ها كليك كنيد و سپس بر روى قالبها كليك كنيد و قالب انجمن مورد نظر را انتخاب و كليك نماييد . شما ميتوانيد آپلود سنتر را در قسمتهاى مختلف قالب انجمنتان هر جا كه اديتور مورد نياز هست قرار دهيد .
اديتور در قالبهاى newreply واقع در گروه قالب New Reply Templates و همچنين در newthread واقع در گروه قالب New Thread Templates و نيز در editpost واقع در گروه قالب Edit Post Templates و در private_send واقع در گروه Private Message Templates موجود هست . كد اديتور در اين قالبها معمولا بصورت زير تعريف شده است .
کد:
<textarea name="message" id="message" rows="30" cols="80" tabindex="2" style="width: 650px; margin:0;">{$message}</textarea>
كافيست كد زير را در بالا يا پايين اديتور (منظور كد بالايى ) قرار دهيد .
کد:
<a onclick="window.open ('http://dl.sepna.com/photo.php',null,'width=500, height=400, scrollbars=Yes, resizable=no');" href="javascript:void(0)" >
<img border="0" src="images/uploader.png" width="200" height="40" title="آپلود مستقيم فايلها و تصاوير در سايت"></a>
در كد بالا آدرس آپلود سنتر را مشخص كنيد dl.sepna.com/photo.php
طول و عرض پنجره آپلود سنتر در هنگام كليك كردن ماوس width و height
تنظيم نمايش اسكرول بار scrollbars
امكان تنظيم كردن ابعاد پنجره آپلود سنتر توسط ديگران وجود داشته باشد يا خير resizable
آدرس عكس images/uploader.png
در واقع ميتوانيد از كد بالا در هر سيستمى استفاده كنيد .