انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: pooya_mr2009 در 03 اسفند 1388، 01:06 ب‌ظ

عنوان: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 03 اسفند 1388، 01:06 ب‌ظ
سلام
یه کد php می خوام که وقتی بهش ادرس یه فایلو می دیم اون رو دانلود کنه
هر کی می تونه کمک کنه
ممنون
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 03 اسفند 1388، 01:12 ب‌ظ

منبع
............
------------------------- ویرایش --------------------------

الان لینک منبع رو کلیک کردم بخاطر تحریم ایران اجازه دسترسی نداد و توهین هم کرد. واقعا آدم‌های بی‌شعوری هستن ............
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 03 اسفند 1388، 03:57 ب‌ظ
واقعا ممنونم
ولی نمی دونم دقیقا چه جوری ازش استفاده کنم
چون من اصلا هیچی از php بلد نیستم
اگه می شه مرحمت کنید به من نحوه ی استفاده را بگید
ممنون
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 03 اسفند 1388، 04:28 ب‌ظ
واقعا ممنونم
ولی نمی دونم دقیقا چه جوری ازش استفاده کنم
چون من اصلا هیچی از php بلد نیستم
اگه می شه مرحمت کنید به من نحوه ی استفاده را بگید
ممنون

سلام
دوست عزیز دقیقا چی کار می‌خوای بکنی؟
تو به کامپیوتر سرور دسترسی داری؟
یا می‌خوای رو کامپیوتر خودت سکریپتی رو اجرا کنی که فایلی رو دانلود کنی؟
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 03 اسفند 1388، 04:54 ب‌ظ
دبیرستان ما به هر نفر یه صفحه شخصی داده که هر کی می نونه هر چی می خواد آپلود کنه.
یکی از بچه ها کد phpرا آپلود کرده بود و  ان را اجرا می کرد و فایل های داده شده در php را دانلود می کرد.
ما به طور خودکار سرعتمون یک سوم سرعت سرور هست.اگه این phpکار کنه سرعت دانلودم 3 برابر می شود.اخه اینترنت خونمون فسیلیه.
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 03 اسفند 1388، 05:17 ب‌ظ
دبیرستان ما به هر نفر یه صفحه شخصی داده که هر کی می نونه هر چی می خواد آپلود کنه.
یکی از بچه ها کد phpرا آپلود کرده بود و  ان را اجرا می کرد و فایل های داده شده در php را دانلود می کرد.
ما به طور خودکار سرعتمون یک سوم سرعت سرور هست.اگه این phpکار کنه سرعت دانلودم 3 برابر می شود.اخه اینترنت خونمون فسیلیه.

خب از دوستت کد رو بگیر :)
خودم سعی می‌کنم بنویسمش، اگه نتونستم از یه سایت درست و حسابی واسط کد رو پیدا می‌کنم.
برای استفاده از کد‌ها فقط لازمه که اونها رو تو یه فایل با پسوند php. ذخیره کنی بعد آپلودش کنی
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 03 اسفند 1388، 05:31 ب‌ظ
نمی ده
می ترسه تو مدرسه پابلیک شه.به من اعتماد نداره.در ضمن دوستم نیز نیست!1 سال از من بزرگتره نیز!
حالا باشه سیو می کنم.ادرس فایلو چه جوری بهش بدم(این پست را دارم قبل از اجرا می دم)
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 03 اسفند 1388، 05:37 ب‌ظ
چی شد.
چرا کد ها رو برداشتی
ازش کپی ندارم
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 03 اسفند 1388، 11:43 ب‌ظ
چی شد.
چرا کد ها رو برداشتی
ازش کپی ندارم

بالا گفتم، سایت خوبی نبود.
این یه کد از یه سایت دیگه:
<?php
 
// place this code inside a php file and call it f.e. "download.php"
$path $_SERVER['DOCUMENT_ROOT']."/path2file/"// change the path to fit your websites document structure
$fullPath $path.$_GET['download_file'];
 
if (
$fd fopen ($fullPath"r")) {
    
$fsize filesize($fullPath);
    
$path_parts pathinfo($fullPath);
    
$ext strtolower($path_parts["extension"]);
    switch (
$ext) {
        case 
"pdf":
        
header("Content-type: application/pdf"); // add here more headers for diff. extensions
        
header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a download
        
break;
        default;
        
header("Content-type: application/octet-stream");
        
header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
    }
    
header("Content-length: $fsize");
    
header("Cache-control: private"); //use this to open files directly
    
while(!feof($fd)) {
        
$buffer fread($fd2048);
        echo 
$buffer;
    }
}
fclose ($fd);
exit;
// example: place this kind of link into the document where the file download is offered:
// <a href="download.php?download_file=some_file.pdf">Download here</a>
?>

لینک سایت (http://www.finalwebsites.com/forums/topic/php-file-download)
باید آدرس فایلی که می‌خوای دانلود کنی تو متغییر path وارد کنی بعد فایل رو آپلود کنی. و وقتی تو مرورگر اینترنتی این فایل آپلود شده رو باز کنی، کد php اجرا می‌شه
امتحانش هم کردم، درست کار می‌کنه
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: سید محمود رضا سجادی در 04 اسفند 1388، 01:41 ق‌ظ
!!پس از ویرایش پاک شد!!

--------------------- ویرایش---------------------

آقا من فکر کردم شما یکی دیگه ای
همین سوالو که توی تاپیک زیر هم پرسیدی!!!
یکیش کافی بنود به نظرت؟
http://forum.ubuntu.ir/index.php/topic,12850.0.html
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 04 اسفند 1388، 10:32 ق‌ظ
اول در جواب اقای heresh من هیچی phpبلد نیستم  و در کد هزار تا متغیر path وجود دارد.فرض کنید من می خوام صفحه ی www.google.com را دانلود کنم.
میشه جایگزین pathکنید ببینم چی می شه.ممنون
در جواب اقای سجادی باید بگویم اون سوال در پست مربوط به اسکریپت مطرح شد و بعد به php کشیده شد.برای همین یه پست جدا دادم
عنوان: پاسخ به: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 04 اسفند 1388، 05:29 ب‌ظ
اول در جواب اقای heresh من هیچی phpبلد نیستم  و در کد هزار تا متغیر path وجود دارد.فرض کنید من می خوام صفحه ی www.google.com را دانلود کنم.
میشه جایگزین pathکنید ببینم چی می شه.ممنون

دوست عزیز من نگفتم جایگزین. باید متغیر path رو مقدار دهی کنی. و مقدارش رو آدرس فایلی که قراره دانلود بشه قرار بدی.
تو این خط
$path = $_SERVER['DOCUMENT_ROOT']."/path2file/"; // change the path to fit your websites document structure
مثال:
با این کد نمی‌شه www.google.com رو دانلود کرد چون گوگل یه سایته و هر سایت تعداد زیادی فایل داره و این سکریپت تو هر بار اجرا فقط یه فایل رو می‌تونه دانلود کنه.
مثلا ما می‌خوایم یه فایل به اسم example.txt رو که تو آدرس directory/dir1/example.txt/ هست رو دانلود کنیم. باید کد رو به این شکل تغییر بدیم:
$path = $_SERVER['DOCUMENT_ROOT']."/directory/dir1/"; // change the path to fit your websites document structureبعد خط پایینش رو به این شکل:
$fullPath = $path."example.txt";
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 04 اسفند 1388، 06:28 ب‌ظ
به به! چی ساختم  ;D

کد بالا رو تغییر دادم، کاملش کردم. دیگه لازم نیست اصلا کدش رو تغییر بدی و فقط کافیه یه بار آپلودش کنی، نه اینکه برای هر فایل کدش رو تغییر بدی و بازم آپلود کنی.
فقط کد پایین رو تو یه فایل با پسوند php. آپلود کن. بعد از اجرا یه textBox داره، آدرس فایل رو کامل بنویس ( همراه با اسم فایل) بعد دگمه Download رو بزن
<?php
ob_start
();
    
// If the name field is filled in
    
if (isset($_POST['filename']))
    {
        
$name htmlentities($_POST['filename']);
$fullPath $_SERVER['DOCUMENT_ROOT'].$name;
if ($fd fopen ($fullPath"r")) {
$fsize filesize($fullPath);
$path_parts pathinfo($fullPath);
$ext strtolower($path_parts["extension"]);

header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
header("Content-length: $fsize");
header("Cache-control: private"); //use this to open files directly
while(!feof($fd)) {
$buffer fread($fd2048);
echo $buffer;
}
}
fclose($fd);
exit;
    }
?>

<form action="second.php" method="post">
    <p>
         File Address: (with File's Name)<br />
         <input type="text" id="filename" name="filename" size="20" maxlength="256" />
    </p>
    <input type="submit" id="submit" name = "submit" value="Download!" />
</form>

<?php ob_flush(); ?>

(البته کاره بخصوصی نکردم، درست کردن فرم ساده است ولی اولین باره که از فرم استفاده کردم ;) )
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 04 اسفند 1388، 08:19 ب‌ظ
ییخشید یه سوال دیگه
وقتی می گید /directory
یعنی این که این ادرس در کامپیوتر خودمان است و برای همین بعد از path نوشتیم document_root
ایا استدلال من درسته یا اگه ادرس فایل در سرور خودمان نبود باز هم ان document_rootباقی می ماند.
اها راستی من اون کد را با پسوند php رو دسکتاپ سیو کردم و با فایرفاکس بازش کردم.بعد ادرس مستقیم یک فایلو بهش دادم.ولی فایرفاکس پیغام second.php not found
را داد.پس چه جوری از کد استفاده کنم.می خوام تستمش کنم اگه جواب داد اپلود کنم.
سوال اولم در مورد کد قبلی بود که ولش کنید.سوال دوم رو بی زحمت اگه می شه کمک کنید
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 04 اسفند 1388، 08:45 ب‌ظ
اره
یه باره دیگه این کارو کردم.
نتیجه همان بود که گفتم
پیشنهادی دارید؟
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 04 اسفند 1388، 08:57 ب‌ظ
اره
یه باره دیگه این کارو کردم.
نتیجه همان بود که گفتم
پیشنهادی دارید؟

برای آزمایش کردن کد باید کامپیوترت سرور باشه. هست؟
(مثلا apachi نصب باشه)
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 04 اسفند 1388، 09:02 ب‌ظ
نه نیست.
من می خوام از یه سابت دیگه یه فایل را دانلود کنم. با این کد شما نمی شه؟
اگه نمی شه پس چی کار کنم؟
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 04 اسفند 1388، 09:03 ب‌ظ
نقل‌قول
اها راستی من اون کد را با پسوند php رو دسکتاپ سیو کردم و با فایرفاکس بازش کردم.بعد ادرس مستقیم یک فایلو بهش دادم.ولی فایرفاکس پیغام second.php not found
را داد.

یادم نبود، فایل خودت رو به همین اسم ذخیره کن second.php یا هر اسمی گذاشتی این خط رو باید تغییر بدی به اسم فایل خودت:
<form action="second.php" method="post">
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 04 اسفند 1388، 09:09 ب‌ظ
نه نیست.
من می خوام از یه سابت دیگه یه فایل را دانلود کنم. با این کد شما نمی شه؟
اگه نمی شه پس چی کار کنم؟

اگه نیست پس نمی‌تونید آزمایشش کنید مگه اینکه سرور باشید یا سرور مجازی داشته باشید یا ...

این سکریپت فقط مال دانلود از سروره نه یه سایت دیگه. برای دانلود از سایت‌های دیگه نرم‌افزاری‌های زیادی نوشتن از اونها استفاده کنید
شاید منظورتون اینه که موقع استفاده از سایت‌های دیگه هم سرعتتون زیاد بشه، درست می‌گم؟
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 04 اسفند 1388، 09:14 ب‌ظ
من می تونم رو سرور دبیرستان آپلود کنم.
ایا در این صورت می تونم از یه سایت دیگه فایلی با ادرس مثلا http://www.cde.ca.gov/be/st/ss/documents/mathstandard.pdf دانلود کنم؟
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 04 اسفند 1388، 09:22 ب‌ظ
من می تونم رو سرور دبیرستان آپلود کنم.
ایا در این صورت می تونم از یه سایت دیگه فایلی با ادرس مثلا http://www.cde.ca.gov/be/st/ss/documents/mathstandard.pdf دانلود کنم؟

نه نمی‌شه. همون قسمت Document_root مربوط می‌شه به آدرس سروری که این سکریپت روش اجرا می‌شه.
نرم‌افزارهای زیادی (خیلی زیاد) واسه لینوکس و ویندوز وجود داره که این کار رو انجام می‌دن، یعنی لینک یک فایل رو می‌گیرن بعد دانلودش می‌کنن.

تا اونجا که من بدونم نمی‌تونید سکریپتی رو سرور دبیرستانتون اجرا کنید که سرعت دانلودتون از سایت‌های دیگه زیاد بشه، رو سروری که کد اجرا می‌شه شاید ولی از یه سایت دیگه ممکن نیست
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: pooya_mr2009 در 04 اسفند 1388، 09:29 ب‌ظ
حالا زیاد شدن سرعت هیچ.خود دانلود کردن غنیمته.
ولی جدی میگم.یکی ار بچه ها یه php نوشته بود.
شما کسی رو نمی شناسید یا سایتی رو بلد نیستید که تخصصشون در این جور php ها باشه یا خودتون با توضیح بالایم حالا اسکریپتی دارید؟
به هر حال ممنون که تو این مدت هی جوابم رو دادید.
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: heresh در 04 اسفند 1388، 09:43 ب‌ظ
نه من همچین استکریپتی ندارم. فروم تخصصی php ایرانی هست. گوگل سرچ کنی پیدا می‌کنی.
کاری نکردم عزیز، با جواب دادن به سوال دیگران خودم هم یادمی‌گیرم  :)
عنوان: پاسخ به: کمک برای نوشتن یک کد php
ارسال شده توسط: B در 05 اسفند 1388، 12:22 ق‌ظ
باید یه سرور نصب کنید (Aache) و تنظیم کنید که فایلهای php رو بشناسه و ...
همینظوری که اجرا نمیشه !