הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   חלון הורדה לקובץ txt (https://hosts.co.il/forums/showthread.php?t=70072)

Speed 06-12-08 22:50

חלון הורדה לקובץ txt
 
איך אני עושה חלון הורדה לtxt?
שאני לוחץ על הקישור למקור שהוא נמצא בו זה יפתח לי חלון הורדה (כמו לכל קובץ אחר כמו EXE,AVI וכו'..) במקום שיציג לי את הקובץ דרך הדפדפן?

SDF 07-12-08 00:10

אם תרצה עם PHP שיפתח חלון הורדה עבור test.txt:
PHP קוד:

<?php
header
('Content-type: text/plain');
header('Content-Disposition: attachment; filename="test.txt"');
readfile('test.txt');
?>

פה בעצם אנחנו שולחים את כותרת הHTTP המתאימה שאומרת לדפדפן שיפתח חלון הורדה.
ו readfile פשוט פולט את התוכן של הקובץ.

אגב, השם של הקובץ בכותרת לא חייב להיות בהכרח השם של הקובץ המקורי,
עוד על זה כאן

Speed 07-12-08 13:57

זה כותב לי אחרי שהורדתי את הקובץ בתוך הקובץ:

ציטוט:

<b>Warning</b>: readfile() has been disabled for security reasons in line 5

intercooler3819 07-12-08 14:21

זה לא האדרים כ'כ תקינים
תשלח גם CONTENT-LENGTH

בהצלחה

Speed 07-12-08 14:45

ציטוט:

נכתב במקור על ידי nitsanbn (פרסם 685853)
זה לא האדרים כ'כ תקינים
תשלח גם CONTENT-LENGTH

בהצלחה

הוספתי, עכשיו שאני מוריד את הקובץ זה מוריד לי אותו ריק מתוכן.

intercooler3819 07-12-08 14:56

חח אתה צריך להגדיר את אורך התוכן חח מצחיק

תעיף מבט על השרשור הזה
http://hosts.co.il/forums/archive/in...p/t-69215.html

Speed 07-12-08 15:06

זה מה שעשיתי:
PHP קוד:

<?php 
header
('Content-type: text/plain'); 
header('Content-Disposition: attachment; filename="test.txt"'); 
header("Content-Length: "filesize('test.txt'));    
readfile ("test.txt");
?>

וזה לא עובד.

WCMS 08-12-08 06:10

ציטוט:

נכתב במקור על ידי Speed (פרסם 685848)
זה כותב לי אחרי שהורדתי את הקובץ בתוך הקובץ:

קוד:

<b>Warning</b>: readfile() has been disabled for security reasons in line 5

זה אומר שבעל השרת שלך ביטל את הפונקציה readfile() בשרת.
תנסה לפנות אל בעל השרת שלך.

vadimg88 08-12-08 13:31

קוד:

header("Pragma: public");
                header("Expires: 0");
                header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
                header("Cache-Control: public");
                header("Content-Description: File Transfer");
                header("Content-Type: {$type}");
                header("Content-Disposition: attachment; filename=\"$file\"");
                header("Content-Transfer-Encoding: binary");
                header("Content-Length: " . $fsize);

                // download
                // @readfile($file_path);
                $file = @fopen($fullfile,"rb");
                if ($file) {
                        while(!feof($file)) {
                                print(fread($file, 1024*8));
                                flush();
                                if (connection_status()!=0) {
                                        @fclose($file);
                                        die();
                                }
                        }
                        @fclose($file);
                }

תצטרך לשנות את הערכים בהתאם, לי זה עובד.

Speed 09-12-08 19:16

ציטוט:

נכתב במקור על ידי Yuri198 (פרסם 686044)
זה אומר שבעל השרת שלך ביטל את הפונקציה readfile() בשרת.
תנסה לפנות אל בעל השרת שלך.

ואין דרך לעשות את זה ללא readfile?


כל הזמנים הם GMT +2. הזמן כעת הוא 11:40.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ