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

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

eXtaZa 12-05-06 21:40

[PHP] שאלה בקשר לHeader
 
שלום,
יש לי בעיה שהיא נדמה לי עם Header ... ניסיתי לעשות שכשלוחצים על קישור זה יוריד את התמונה blue.jpg שנמצאת על השרת. הקוד הוא כזה:
PHP קוד:

<html>
<head>
</head>
<body>
<a href="<?=$PHP_SELF?>?download=blue">Download Image</a>
<?php
if($_GET['download']=="blue"){
    
header('Content-type: image/jpeg');
    
header('Content-Disposition: attachment; filename="blue.jpeg"');
    
readfile('test.php');
}
?>
</body>
</html>

עכשיו... כשאני לוחץ על הקישור זה מוריד את התמונה אבל כשאני פותח אותה זה לא מראה לי כלום משום מה... מה הבעיה?

תודה.

MasterNir 12-05-06 21:50

לפקודה readfile אתה צריך להעביר את השם והנתיב של התמונה שאתה רוצה שיורידו, לא את שם הקובץ שאתה מריץ ממנו את הפקודה.

BlueNosE 12-05-06 21:50

תעשה בתחילת הקוד, לפני הHTML
ob_start();

וחשוב גם מה שמאסטר ניר אמר

eXtaZa 12-05-06 21:57

זה עדיין לא מציג, עם 2 הדברים האלו...
ומה עושה ob_start ?

MasterNir 12-05-06 21:58

תן קישור, גם לקובץ וגם לתמונה...
ותדביק את הקוד החדש...

ob_start ()
זאת פקודה שמפעילה מצב output buffering. ז"א שהשרת מחזיר רק את הה-headers אבל מקפיא את שליחת ה-HTML עד שהפקודה ob_flash () נקראת, או עד שהסקריפט מסתיים, הראשון מבין השניים.

BlueNosE 12-05-06 23:01

ציטוט:

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

ob_start ()
זאת פקודה שמפעילה מצב output buffering. ז"א שהשרת מחזיר רק את הה-headers אבל מקפיא את שליחת ה-HTML עד שהפקודה ob_flash () נקראת, או עד שהסקריפט מסתיים, הראשון מבין השניים.

*ob_flush
זה בעצם מאפשר לך לשלוח HEADERS, להכין עוגיות (חחח מה זה פה מאפיה @: ) ועוד אחרי שכבר כתבת HTML


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

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