Πρόβλημα με file download

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πρόβλημα με file download

Δημοσίευση από Apostolis_38 » 02 Αύγ 2013 15:10

Εχω ένα script με το οποίο μπορεί να κάνει ο χρήστης download ένα αρχείο.
Παλιό script, απλό και δοκιμασμένο.

Κώδικας: Επιλογή όλων

header('Content-Description: File Transfer');
header('Content-type: application/'.$this->chFileExtension.'');
header('Content-disposition: Attachment; filename='.$this->chFileToDownload);
header('Content-Length: '.filesize($this->chFileToDownload));
$file = $this->chDownloadDir.$this->chFileToDownload;
readfile($file);
Σε έναν συγκεκριμένο hoster μου δημιουργεί πρόβλημα, το οποίο είναι το εξής.

Οταν το χρησιμοποιώ μέσα από class μου προσθέτει στο αρχείο και τον html κώδικα της "μητρικής" σελίδας.
Οταν το κάνω access απ' ευθείας μου βγάζει το σφάλμα readfile() has been disabled for security reasons !!!!!!!!
Πρώτη φορά μου τυχαίνει αυτό το σφάλμα!

Το κακό είναι οτι δεν μπορώ να το παρακάμψω με τίποτα.
ini_set, ob_start, ob_end_clean.
Δεν αλλάζουν τίποτα.

file_get_contents, curl κ.λ.π. επίσης δεν φέρνουν αποτέλεσμα.

Εχει κανείς καμμιά ιδέα για το πως μπορεί να παρακαμφθεί αυτη ή ρύθμιση;
Η, σαν εναλλακτική, πως μπορεί να μην τυπώνεται ο html κώδικας στο αρχείο;

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Πρόβλημα με file download

Δημοσίευση από alou » 02 Αύγ 2013 15:41

fopen? αλλά για κάνε ένα
var_dump(ini_get('disable_functions'));
να δεις τι είναι disabled πρώτα

Για να παρακαμφθεί αν δεν έχεις root access θα πρέπει να επιτρέπονται οι τοπικές ρυθμίσεις των php.ini που από όσο λες δεν ισχύει :/

παράδειγμα fopen:
http://stackoverflow.com/questions/8024 ... are-broken

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πρόβλημα με file download

Δημοσίευση από Apostolis_38 » 02 Αύγ 2013 15:51

"exec,system,passthru,readfile,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,popen,show_source"

Εχω "σηκώσει" δικό μου php.ini μέσω του οποίου προσπάθησα να ενεργοποιήσω την readfile (allow_url_fopen) αλλά τίποτα.

Την fopen δεν την δοκίμασα.
Θα την δοκιμάσω κι αυτή αλλά δεν το πολυβλέπω, αφού η file_get_contents και η curl δεν παίζουν.
Θα το δω πάντως και θα σου πω.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πρόβλημα με file download

Δημοσίευση από Apostolis_38 » 02 Αύγ 2013 16:44

Κι όμως έπαιξε!
Με txt και docx Που το δοκίμασα έπαιξε μια χαρά.
Φαντάζομαι και με pdf δεν θα έχω πρόβλημα.

Μπράβο ρε παληκάρι.
σωραίος :D

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Πρόβλημα με file download

Δημοσίευση από alou » 02 Αύγ 2013 17:09

thanx :P

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Πρόβλημα με file download

Δημοσίευση από cpulse » 02 Αύγ 2013 17:57

Απλά μετά την ολοκλήρωση του fopen fwrite fclose κτλ, πάτα του κι ένα exit().

Κάποια συστήματα έχουν shutdown functions και με το exit() τα παρακάμπτεις.

Δες περισσότερα εδώ:
http://php.net/manual/en/function.regis ... nction.php

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Πρόβλημα με file download

Δημοσίευση από Apostolis_38 » 04 Αύγ 2013 21:20

Ναι, το exit το είχα ούτως ή άλλως γιατί δεν ήθελα να συνεχίζει το script στο αρχείο που καλεί το download.
Φύλαγε τα ρούχα σου...

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες