rezaonline

انتقال فايل بين سروري با پي اچ پي (سریع سریع)

43 پست در این موضوع قرار دارد

با سلام دوستان

گاهي اوقات لازم شده يه اسکريپت رو از يه جا دانلود کنيد بعد روي هاستتون آپلود کنيد و استفاده کنيد .

عامل تاخير سرعت در اينحالت ميشه سرعت اينترنت شما ، چون بايد اول فايل رو دانلود کنيد و بعد آپلود

مديراي سرورها که با يه دستور لينوکس همه ي چيو اينور اونور ميکنن اما ما که مدير نيستيم :)

خب راه حل اينکه با استفاده از تابع file_get_contents فايل رو بگيريم و با fwrite اونو بنويسيم !

اينجوري نيازي به دانلود و آپلود فايل نيست و علناً داريم از سرور استفاده ميکنيم که معمولاً سرعتش در حد خداست :)

* نکته لازم اينکه بايد فايل حتماً لينک مستقيم باشه !

سرتون رو درد نيارم يک فايل به اسم مثلاً getfile.php بسازيد و دستورات زير رو توش بذاريد


<meta http-equiv=Content-Type content='text/html; charset=utf-8' />
<style>
.red{color:red;font-weight:bold;}
.green{color:green;font-weight:bold}
span{display:block;padding:2px;}
a{text-decoration:none;color:darkorange;font-family:tahoma;font-size:8pt;text-shadow:1px 1px 0 rgb(250,250,250)}
</style>
<form method=post action=<?php echo basename(__FILE__);?>>
<div style='direction:rtl;font-family:tahoma;font-size:8pt;margin:0 auto; padding:25px; width:800px;color:gray'>
آدرس کامل فايل : <input name=addr type=text dir=ltr size=100 value='http://' ><br>
قرار دادن در شاخه : <input name=dir type=text dir=ltr size=100 value="<?php echo dirname(__FILE__)?>/" >
<input type=hidden name=ok value=ok >
<br><br>
<input type=submit style='background:#FFF;border:1px solid gray;font-family:tahoma' value='انتقال بده' />
</form>
<?php
if(isset($_POST['ok'])){
$content = file_get_contents(trim($_POST['addr']));
@mkdir($_POST['dir'].'/', 0755);
$fp = fopen($_POST['dir'].basename($_POST['addr']), "wb");
if (!$fp)
echo '<span class=red>انتقال انجام نشد احتمالاً خطا از فايل يا دايرکتوري است .</span>';
else
echo '<span class=green>فايل ساخته شد . </span>';
fwrite($fp, $content);
fclose($fp);
}
?>
</div>
<center><a href='http://rezaonline.net/blog' target=_blank>RezaOnline.Net</a></center>

حالا به آدرس اون فايل بريد مثلاً http://mysite.ir/getfile.php

دو تا فيلد هست بالاييش آدرس لينک مستقيم فايل مورد نظر

پائينيش شاخه اي که بايد توش قرار بگيره که پيشفرض بغل دست همون فايل getfile.php قرار ميگيره

اگه ميخوايد توي پوشه جديد باشه کافيه اسم پوشه رو به انتهاي قرار دادن در شاخه اضافه کنيد و يک / هم بذاريد بغل دستش

* يه حرف در گوشي : بعضي از فايلها و عکسها هستن که عمو قـ ـيلتـ ـر چي ، چيزشون کرده ، با اين روش ميتونيد اونم دور بزنيد

کنکوريهاش بزن لايکو

24

به اشتراک گذاری این پست


لینک به پست

اگه یک کاری میشد کرد که قبلش بایستی پسورد رو وارد میکردی بعدش آپلود میکردیم خیلی خوب میشد... چون این خودش امنیت رو میاره پایین(اونم خیلی پایین!)

6

به اشتراک گذاری این پست


لینک به پست

تست کنید:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title>Upload Me!</title>

<meta http-equiv=Content-Type content='text/html; charset=utf-8' />

<style>

.red{color:red;font-weight:bold;}

.green{color:green;font-weight:bold}

span{display:block;padding:2px;}

a{text-decoration:none;color:darkorange;font-family:tahoma;font-size:8pt;text-shadow:1px 1px 0 rgb(250,250,250)}

</style>

</head>

<body>

<?php

$pass = "yoursecretpassword";

?>

<form method="post" action="<?php echo basename(__FILE__);?>">

رمز خود را وارد کنید : <input type="text" name="password" value="" />

<input type="submit" name="submit" value="برو!" />

</form>

<?php

if(isset($_POST['password'])){

if($_POST['password'] == $pass) {

?>

<form method=post action=<?php echo basename(__FILE__);?>>

<div style='direction:rtl;font-family:tahoma;font-size:8pt;margin:0 auto; padding:25px; width:800px;color:gray'>

آدرس کامل فايل : <input name=addr type=text dir=ltr size=100 value='http://' ><br>

قرار دادن در شاخه : <input name=dir type=text dir=ltr size=100 value="<?php echo dirname(__FILE__)?>/" >

<input type=hidden name=ok value=ok >

<br><br>

<input type=submit style='background:#FFF;border:1px solid gray;font-family:tahoma' value='انتقال بده' />

</form>

<?php

if(isset($_POST['ok'])){

$content = file_get_contents(trim($_POST['addr']));

@mkdir($_POST['dir'].'/', 0755);

$fp = fopen($_POST['dir'].basename($_POST['addr']), "wb");

if (!$fp)

echo '<span class=red>انتقال انجام نشد احتمالاً خطا از فايل يا دايرکتوري است .</span>';

else

echo '<span class=green>فايل ساخته شد . </span>';

fwrite($fp, $content);

fclose($fp);

}

?>

</div>

<center><a href='http://rezaonline.net/blog' target=_blank>RezaOnline.Net</a></center>

<?php

}else{

echo "<span class='red'>رمز وارد شده اشتباه است!</span>";

}

}

?>

</body>

</html>

13

به اشتراک گذاری این پست


لینک به پست

ممنون آقا مرتضی .

چون این خودش امنیت رو میاره پایین(اونم خیلی پایین!)

بعد از اینکه کارت باهاش تموم شد فایل رو rename کن .

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

5

به اشتراک گذاری این پست


لینک به پست

ببخشید ببخشید یه اشتباه کوچولو ، فایل رو با این عوض کنید



<?php
session_start();
$pass = 'secretpass';
date_default_timezone_set('Asia/Tehran');
?>
<html>
<head>
<title>Upload Me!</title>
<meta http-equiv=Content-Type content='text/html; charset=utf-8' />
<style>
*{font-family:tahoma;font-size:8pt}
.red{color:red;font-weight:bold;}
.green{color:green;font-weight:bold}
span{display:block;padding:2px;}
a{text-decoration:none;color:darkorange;font-family:tahoma;font-size:8pt;text-shadow:1px 1px 0 rgb(250,250,250)}
</style>
</head>
<body>
<?php
#logout
if(isset($_GET['logout']))
unset($_SESSION[date('ymd-h')]['getfile']);

#login
if(isset($_POST['password']) and $_POST['password'] ==$pass)
$_SESSION[date('ymd-h')]['getfile']= md5($pass.date('ymd'));
elseif(isset($_POST['password']))
echo '<span class=red > پسورد اشتباه </span>';

if(!isset($_SESSION[date('ymd-h')]['getfile']) or $_SESSION[date('ymd-h')]['getfile']!= md5($pass.date('ymd'))):?>
<form method="post" action="<?php echo basename(__FILE__);?>">
رمز خود را وارد کنید : <input type="text" name="password" value="" />
<input type="submit" name="submit" value="برو!" />
</form>
<?php

elseif(isset($_SESSION[date('ymd-h')]['getfile']) and $_SESSION[date('ymd-h')]['getfile']== md5($pass.date('ymd'))):?>

<form method=post action=<?php echo basename(__FILE__);?>>
<div style='direction:rtl;font-family:tahoma;font-size:8pt;margin:0 auto; padding:25px; width:800px;color:gray'>
<br><a href='?logout=logout' target=_self><b style='color:red'>خروج</b></a><br>
آدرس کامل فايل : <input name=addr type=text dir=ltr size=100 value='http://' ><br>
قرار دادن در شاخه : <input name=dir type=text dir=ltr size=100 value="<?php echo dirname(__FILE__)?>/" >
<input type=hidden name=ok value=ok >
<br><br>
<input type=submit style='background:#FFF;border:1px solid gray;font-family:tahoma' value='انتقال بده' />
</form>
<?php
if(isset($_POST['ok']) and isset($_SESSION[date('ymd-h')]['getfile']) and $_SESSION[date('ymd-h')]['getfile']== md5($pass.date('ymd'))){
$content = file_get_contents(trim($_POST['addr']));
@mkdir($_POST['dir'].'/', 0755);
$fp = fopen($_POST['dir'].basename($_POST['addr']), "wb");
if (!$fp)
echo '<span class=red>انتقال انجام نشد احتمالاً خطا از فايل يا دايرکتوري است .</span>';
else
echo '<span class=green>فايل ساخته شد . </span>';
fwrite($fp, $content);
fclose($fp);
}
?>
</div>
<center><a href='http://rezaonline.net/blog' target=_blank>RezaOnline.Net</a></center>
<?php else:?>

<?php endif;?>
</body>
</html>

ویرایش شده در توسط rezaonline.net
7

به اشتراک گذاری این پست


لینک به پست

تست کنید:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title>Upload Me!</title>

<meta http-equiv=Content-Type content='text/html; charset=utf-8' />

<style>

.red{color:red;font-weight:bold;}

.green{color:green;font-weight:bold}

span{display:block;padding:2px;}

a{text-decoration:none;color:darkorange;font-family:tahoma;font-size:8pt;text-shadow:1px 1px 0 rgb(250,250,250)}

</style>

</head>

<body>

<?php

$pass = "yoursecretpassword";

?>

<form method="post" action="<?php echo basename(__FILE__);?>">

رمز خود را وارد کنید : <input type="text" name="password" value="" />

<input type="submit" name="submit" value="برو!" />

</form>

<?php

if(isset($_POST['password'])){

if($_POST['password'] == $pass) {

?>

<form method=post action=<?php echo basename(__FILE__);?>>

<div style='direction:rtl;font-family:tahoma;font-size:8pt;margin:0 auto; padding:25px; width:800px;color:gray'>

آدرس کامل فايل : <input name=addr type=text dir=ltr size=100 value='http://' ><br>

قرار دادن در شاخه : <input name=dir type=text dir=ltr size=100 value="<?php echo dirname(__FILE__)?>/" >

<input type=hidden name=ok value=ok >

<br><br>

<input type=submit style='background:#FFF;border:1px solid gray;font-family:tahoma' value='انتقال بده' />

</form>

<?php

if(isset($_POST['ok'])){

$content = file_get_contents(trim($_POST['addr']));

@mkdir($_POST['dir'].'/', 0755);

$fp = fopen($_POST['dir'].basename($_POST['addr']), "wb");

if (!$fp)

echo '<span class=red>انتقال انجام نشد احتمالاً خطا از فايل يا دايرکتوري است .</span>';

else

echo '<span class=green>فايل ساخته شد . </span>';

fwrite($fp, $content);

fclose($fp);

}

?>

</div>

<center><a href='http://rezaonline.net/blog' target=_blank>RezaOnline.Net</a></center>

<?php

}else{

echo "<span class='red'>رمز وارد شده اشتباه است!</span>";

}

}

?>

</body>

</html>

تست کنید:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title>Upload Me!</title>

<meta http-equiv=Content-Type content='text/html; charset=utf-8' />

<style>

.red{color:red;font-weight:bold;}

.green{color:green;font-weight:bold}

span{display:block;padding:2px;}

a{text-decoration:none;color:darkorange;font-family:tahoma;font-size:8pt;text-shadow:1px 1px 0 rgb(250,250,250)}

</style>

</head>

<body>

<?php

$pass = "yoursecretpassword";

?>

<form method="post" action="<?php echo basename(__FILE__);?>">

رمز خود را وارد کنید : <input type="text" name="password" value="" />

<input type="submit" name="submit" value="برو!" />

</form>

<?php

if(isset($_POST['password'])){

if($_POST['password'] == $pass) {

?>

<form method=post action=<?php echo basename(__FILE__);?>>

<div style='direction:rtl;font-family:tahoma;font-size:8pt;margin:0 auto; padding:25px; width:800px;color:gray'>

آدرس کامل فايل : <input name=addr type=text dir=ltr size=100 value='http://' ><br>

قرار دادن در شاخه : <input name=dir type=text dir=ltr size=100 value="<?php echo dirname(__FILE__)?>/" >

<input type=hidden name=ok value=ok >

<br><br>

<input type=submit style='background:#FFF;border:1px solid gray;font-family:tahoma' value='انتقال بده' />

</form>

<?php

if(isset($_POST['ok'])){

$content = file_get_contents(trim($_POST['addr']));

@mkdir($_POST['dir'].'/', 0755);

$fp = fopen($_POST['dir'].basename($_POST['addr']), "wb");

if (!$fp)

echo '<span class=red>انتقال انجام نشد احتمالاً خطا از فايل يا دايرکتوري است .</span>';

else

echo '<span class=green>فايل ساخته شد . </span>';

fwrite($fp, $content);

fclose($fp);

}

?>

</div>

<center><a href='http://rezaonline.net/blog' target=_blank>RezaOnline.Net</a></center>

<?php

}else{

echo "<span class='red'>رمز وارد شده اشتباه است!</span>";

}

}

?>

</body>

</html>

با سلام خدمت اساتید

این فایل دقیقا چه کاری انجام میده ؟

یعنی با این میشه هر فایلی را از روی سرور های مختلف به سرور خودمون انتقال بدیم مثلا اگه سایت دانلودی داشته باشیم برنامه ها را میتونیم مثلا از سرور اسان دانلود یا میهن دانلود به سرور خودمون انتقال بدیم و برای خودمون لینک مستقیم قرار بدیم ؟

اقا مرتضی این فایلی که نوشتی </div>

خط 47 بستی که فکر کنم اشتباهه اخه تو دیرمور میگه اشتباهه یعنی که اضافه

اگه جواب سوال بالا مثبته این فایل ایا میتونه رمز فایل های زیپ را هم برداره ؟

این فایل را باید کجا قرار بدیم؟

2

به اشتراک گذاری این پست


لینک به پست

ببینید این یک اسکریپت هست که نیازی به نصب نداره...

دقیقا همین کاری که گفتین رو انجام میده...

رمز هم بستگی داره به اینکه آیا سرور مجازی یا اختصاصی دارید یا خیر...

5

به اشتراک گذاری این پست


لینک به پست


<form method="post" action="<?php echo basename(__FILE__);?>">
رمز خود را وارد کنید : <input type="text" name="password" value="" />
<input type="submit" name="submit" value="برو!" />

اقا ببخشین

من زیاد بلد نیستم وقتی اینا روی هاست گذاشتم میگه رمز را وارد کنید

مگه این کدی که گذاشتین رمز ورود داره

ایا باید خودمون یه رمز انتخابی بزاریم اگه قراره خودمون رمز بزاریم اون رمز را باید کجای این کد قرار داد ؟

1

به اشتراک گذاری این پست


لینک به پست

اقا فهمیدم رمزش yoursecretpassword هست که تغیرش دادم و حالا دارم امتحانش میکنم

اقا من از چند سایت مختلف دانلود امتحان کردم ولی کار نمیکنه

ایا به هاست طرف هم مربوط میشه یعنی امکاناتی میخواد یا نه

1

به اشتراک گذاری این پست


لینک به پست

تابع file_get_contents باید روی سرور فعال باشه

2

به اشتراک گذاری این پست


لینک به پست

ممکنه لینک دانلود فایلی که بوجود میاد رو بزاره؟

0

به اشتراک گذاری این پست


لینک به پست

ممکنه لینک دانلود فایلی که بوجود میاد رو بزاره؟

فایل کنار همین فایل php ذخیره میشه به طور پیشفرض

1

به اشتراک گذاری این پست


لینک به پست

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

بعضی فایل ها هم اسمشون خیلی طولانیه...

ویرایش شده در توسط 11111533653
0

به اشتراک گذاری این پست


لینک به پست

کد زیر رو توی یک فایل php بزارید و بعد در کنار فایلهاتون قرار بدید و در مرورگر باز کنید.

همه فایلها رو لیت میکنه + آدرس اونها.

  function getDirectoryList ($directory)

{

$results = array();

$handler = opendir($directory);

while ($file = readdir($handler)) {

if ($file != "." && $file != "..") {

$results[] = $file;

}

}

closedir($handler);

return $results;

}

$files = getDirectoryList ('/home/mysite/public_html/folder'));

foreach($files as $file){

echo 'http://'.$_SERVER['HTTP_HOST'].'/'.$file."<br />";

}

3

به اشتراک گذاری این پست


لینک به پست

ببخشید

نگرفتم چیکار باید بکنم :(

این کدی رو که دادین توی یک فایل php گزاشتم

کنار کدوم فایل هام بزارم؟

0

به اشتراک گذاری این پست


لینک به پست

کنار همون فایلی که میاد فایلها رو منتقل میکنه.

این اسکریپت فایلها رو با آدرس سایتتون لیست میکنه.

2

به اشتراک گذاری این پست


لینک به پست

به جای /home/mysite/public_html/folder چیزی نباید بزارم؟

هاست من رایگانه

الان اینجوری میشه وقتی اون صفحه رو باز میکنم:

62367752764277434011.png

ویرایش شده در توسط alirezaaa
0

به اشتراک گذاری این پست


لینک به پست

به جای /home/mysite/public_html/folder چیزی نباید بزارم؟

هاست من رایگانه

اون خط رو به این تغییر دهید:


$files = getDirectoryList (dirname( __FILE__ ));

البته در هاستهای رایگان برای توابع محدودیتهایی هست

2

به اشتراک گذاری این پست


لینک به پست

درود

این رو تست کن


<?php
define('BUFSIZ', 4095);
$url = 'آدرس فایل';
$rfile = fopen($url, 'r');$lfile = fopen(basename($url), 'w');
while(!feof($rfile))fwrite($lfile, fread($rfile, BUFSIZ), BUFSIZ);
fclose($rfile);fclose($lfile);
?>

3

به اشتراک گذاری این پست


لینک به پست

بازم مشکل داره

خودتون ببینید

کد رو باید داخل php قرار بدهید


<?php
// code
?>

2

به اشتراک گذاری این پست


لینک به پست

نمیدونم چرا این همه کد نوشتید(در مورد اول پست این تاپیک!)

در صورتی که با سه خط کد زیر کار حله:


<?php
copy("http://wordpress.org/latest.zip", "file.zip");
?>

اولیش لینک مستقیم فایله

دومی هم نامی هستش که میخواهید فایل مورد نظر داشته باشه!

1

به اشتراک گذاری این پست


لینک به پست

نمیدونم چرا این همه کد نوشتید(در مورد اول پست این تاپیک!)

در صورتی که با سه خط کد زیر کار حله:


<?php
copy("http://wordpress.org/latest.zip", "file.zip");
?>

اولیش لینک مستقیم فایله

دومی هم نامی هستش که میخواهید فایل مورد نظر داشته باشه!

بعضا تابع کپی روی سرورها غیرفعال هست.

3

به اشتراک گذاری این پست


لینک به پست

ممنون،برای من غیر فعال نیستش

یه سوال

راهی هستش که توی هاست لینوکس پسورد را از فایل zip برداریم؟

1

به اشتراک گذاری این پست


لینک به پست

درود

این رو تست کن


<?php
define('BUFSIZ', 4095);
$url = 'آدرس فایل';
$rfile = fopen($url, 'r');$lfile = fopen(basename($url), 'w');
while(!feof($rfile))fwrite($lfile, fread($rfile, BUFSIZ), BUFSIZ);
fclose($rfile);fclose($lfile);
?>

اینو تست کردم

مرورگر که هیچی سیستم هنگ کرد

ریستارت کردم!!!!

کد رو باید داخل php قرار بدهید


<?php
// code
?>

درست شد

فقط ی مشکلی هست

ادرس فایل ها لینک نداره(فقط ادرس خالیه)

---

ی سوال دیگه

نمیشه این دوتا کد رو با هم ترکیب کرد؟

اینجوری باید یه بار بریم تو ی صفحه فایل بریزیم بعد تو ی صفحه دیگه لینک رو برداریم

متشکر از همگی

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط centralfile
      سلام دوستان من افزونه wp original media path رو نصب کردم تنظمات مربوطه رو انجام دادم.
      یک ساب دامنه برای سایت ایجاد کردم.
      فایل های مربوط به پوشه uploads/wp-content رو هم به ساب دامنه انتقال دادم  اما عکس ها و فایل ها هنوز تو سایت لود نشده.
      پیوند های یکتا رو هم بروز رسانی کردم ولی  مشکلی حل نشد!
      ساب دامنه ایجاد شده و فایل ها داخلش قرار گرفتند
      اینم اسکرین شات از تنظیمات افزونه
       
       
       
       
       
      ممنون میشم کمک کنید.



    • توسط erfan98_
      سلام دوستان وقتتون بخیر و شادی
       
      کسی میدونه سایت من چرا اینطوری شده؟ داشتم فونتو تغییر میدادم اینطوری شد.
       
      https://www.icinemaa.com
       
      لطفا کمک عزیزان... متشکرم
    • توسط shima26
      سلام
      یک جدول در دیتابیس mysql دارم به این شکل :
      staff_id id 10 1 1001 2 12 3 1201 4 1002 5 1202 6 120101 7 120201 8 13 9 آرایه php خروجی مد نظر بعد از استفاده از pdo باید به این شکل در بیاد :
       
      کد:   -10 --1001 --1002 -12 --1201 --- 120101 --1202 --- 120201 -13 در واقع با استفاده از شماره ها گروه بندی بشه و زیر گروه تا انتها
      ممنون میشم دوستان راهنمایی کنن
    • توسط jistili1
      سلام دوستان.من توی سایتم وقتی مثلا یک محصول اضافه میکنم ، این محصول در دیتابیس درج میشه بعدش توی سایت که میام نیستش.برای اینکه محصول جدیدی که اضافه کردم بیاد باید حتما کش صفحه رو پاک کنم تا باید.این مشکل رو برای کش شدن فایل های css دیده بودم ولی برای دیتابیس دیگه ندیده بودم.باید چیکار کنم؟ممنون میشم کمکم کنید.
      هاستم سی پنل هست.با pdo به دیتابیس وصل شدم.
      ضمنا این مشکل برای هر گونه تغییری در دیتابیس هست.اعم از حذف ، آپدیت و ... .
    • توسط abolfazlkh6
      سلام من سایتم چندوقته بالا نمیاد الان که از پشتیبان سایت پرسیدم گفت این مشکلای زیر وجود دارن کسی میتونه حلش کنه؟
      PHP Fatal error: Uncaught Error: Call to undefined function mysql_escape_string() in /home/chahgavi/public_html/wp-content/themes/barad/functions.php:60 Stack trace: #0 /home/chahgavi/public_html/wp-settings.php(426): include() #1 /home/chahgavi/public_html/wp-config.php(90): require_once('/home/chahgavi/...') #2 /home/chahgavi/public_html/wp-load.php(37): require_once('/home/chahgavi/...') #3 /home/chahgavi/public_html/wp-blog-header.php(13): require_once('/home/chahgavi/...') #4 /home/chahgavi/public_html/index.php(17): require('/home/chahgavi/...') #5 {main} thrown in /home/chahgavi/public_html/wp-content/themes/barad/functions.php on line 60