php uploading με ελληνικούς χαρακτήρες στο όνομα του αρχείου

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

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

Απάντηση
p3040029
Δημοσιεύσεις: 3
Εγγραφή: 29 Νοέμ 2007 03:25
Επικοινωνία:

php uploading με ελληνικούς χαρακτήρες στο όνομα του αρχείου

Δημοσίευση από p3040029 » 29 Νοέμ 2007 03:28

Γεια σας και από μένα. Είμαι και εγώ ένας junior developer και αυτό τον καιρό έχω συναντήσει το εξής καυτό πρόβλημα σε PHP εφαρμογή που κάνω, και θα ήθελα λίγο τα φώτα σας, συμπληρωματικά με αυτά που λέτε εδώ.

ΠΡΟΒΛΗΜΑ:
Θέλω να κάνω uploading ενα αρχείο, του οποίου το όνομα να περιέχει ελληνικούς χαρακτήρες. (π.χ. πατάτα.doc). Όταν όμως το κάνω upload, μου το αποθηκεύει στον apache server που έχω, με "κινεζικα" όσον αφορά το όνομα του αρχείου.

ΤΙ ΕΧΩ ΠΡΟΣΠΑΘΗΣΕΙ:
1) Έχω σε όλα τα HTML και PHP αρχεία encoding UTF8
2) Εχω MySQL Server με SET NAMES UTF8 (όχι οτι παίζει ρόλο στην συγκιμένη περίπτωση..)
3) Έχω δοκιμάσει διάφορα κολπάκια με attributes μέσα στο form που περιέχεται το INPUT για FILE (πχ accept-charset="UTF 8")
4) Επίσης έχω ψάξει configuaration σε Apache (.conf), PHP (php.ini), και Windows (Reginal Settings) όπου και γίνεται το "Hosting", αλλά δυστυχώς τα ίδια χάλια.

Δεν μπορώ να κάνω uploading αρχεία με ελληνικούς χαρακτήρες στο όνομα τους!!!..

Σας ικετεύω έχω φάει τα νιάτα μου και 2 εβδομάδες Googling, ξέρει κανείς να με φωτήσει?

ΕΥΧΑΡΙΣΤΩ

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

php uploading με ελληνικούς χαρακτήρες στο όνομα του αρχείου

Δημοσίευση από cpulse » 29 Νοέμ 2007 10:26

Από αυτά που λες φαντάζομαι οτι και το charset της σελίδας το έχεις γυρίσει στο utf-8, το οποίο είναι το ποιό βασικό.

Επίσης φαντάζομαι οτι είσαι με windows. Έχω την εντύπωση οτι στα windows τα file systems λειτουργούν με ANSI, όχι με Unicode. Μάλλον εκεί υπάρχει πρόβλημα.

Έχεις δοκιμάσει να χρησιμοποιήσεις το iconv() ; Αν όχι δοκίμασε να το χρησιμοποιήσεις αφού ανέβει το αρχείο και προσπάθησε με τα charset iso-8859-7 και το character set της microsoft 1253. Αυτό μπορεί να το έχεις πετύχει στο web σαν win1253 αλλά στο iconv υπάρχει σαν cp1253. Μια από αυτές τις προσπάθειες λογικά θα παίξει:

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

echo 'cp1253: ' . iconv('cp1253', 'utf-8', $_FILES['userfile']['name']) . "\n";
echo '<br/>iso-8859-7&#58; ' . iconv&#40;'iso-8859-7', 'utf-8', $_FILES&#91;'userfile'&#93;&#91;'name'&#93;&#41; . "\n";
Χάρη στον alkisg και τον skeftomilos ξέρω να σου πω οτι η διαφορά μεταξύ των iso-8859-7 και win1253 είναι στο κεφαλαίο άλφα με τόνο. Περισσότερα για αυτή την διαφορά διάβασε εδώ. Οπότε αν το iconv λειτουργήσει κάνε ένα κόπο παραπάνω και κάνε upload ένα αρχείο με ένα Ά για να είσαι 100% σίγουρος για το charset.

Και πες μας νέα :)

p3040029
Δημοσιεύσεις: 3
Εγγραφή: 29 Νοέμ 2007 03:25
Επικοινωνία:

php uploading με ελληνικούς χαρακτήρες στο όνομα του αρχείου

Δημοσίευση από p3040029 » 02 Δεκ 2007 16:18

Ναι δοκίμασα iconv και δουλεύει ρολόι!! Exeis dikio :-). Μάλιστα έβαλα σε ένα κεντρικό config file to charset οπότε αναλόγως το ΛΣ και τους ζητούμενους επιθυμητούς χαρακτήρες μπορώ να το κάνω ότι θέλω. Σ' ευχαριστώ πολύ!

Απάντηση

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

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

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