Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Από που να ξεκινήσω; Που θα βρω; κ.α. γενικές ερωτήσεις για την δημιουργία μιας ιστοσελίδας.

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

Απάντηση
Άβαταρ μέλους
zinobios
Δημοσιεύσεις: 326
Εγγραφή: 15 Αύγ 2005 21:49

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από zinobios » 01 Απρ 2008 07:19

Εγκατέστησα δύο διαφορετικά scripts στον server :
1) http://www.orthodoxyhub.gr/monopati_files/
2) http://www.orthodoxyhub.gr/monopati_files2/
αλλά και στα δύο, τα αρχεία με ελληνικό όνομα δεν "κατεβαίνουν" με τον ΙΕ.
Με τον firefox κατεβαίνουν κανονικά ...
Πού οφείλεται αυτό και πώς μπορεί να λυθεί αυτό το πρόβλημα ;
Τελευταία επεξεργασία από το μέλος zinobios την 01 Απρ 2008 09:14, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
fiskilis
Honorary Member
Δημοσιεύσεις: 14093
Εγγραφή: 16 Νοέμ 2003 22:44
Τοποθεσία: Athens
Επικοινωνία:

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από fiskilis » 01 Απρ 2008 08:21

στο οτι ο Ε θελει απο την verisign το ext για να καταλαβαινει ελληνικους χαρακτηρες σε domain ενω ο F το εχει ηδη μεσα !

δες εδω σχετικα http://idn.verisign-grs.com/index.jsp

Άβαταρ μέλους
zinobios
Δημοσιεύσεις: 326
Εγγραφή: 15 Αύγ 2005 21:49

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από zinobios » 01 Απρ 2008 08:53

fiskilis έγραψε:στο οτι ο Ε θελει απο την verisign το ext για να καταλαβαινει ελληνικους χαρακτηρες σε domain ενω ο F το εχει ηδη μεσα !

δες εδω σχετικα http://idn.verisign-grs.com/index.jsp
Μα αυτό που λές αφορά τα Διεθνή Ονόματα Διαδικτύου (Internationalized Domain Names - IDN).


Άβαταρ μέλους
zinobios
Δημοσιεύσεις: 326
Εγγραφή: 15 Αύγ 2005 21:49

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από zinobios » 01 Απρ 2008 09:13

Μήπως έχει δοκιμάσει κανείς σας τον ΙΕ 8 ΒΕΤΑ για να δούμε μήπως αυτός υποστηρίζει τα αρχεία με ελληνικά ονόματα ;


Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από skeftomilos » 01 Απρ 2008 12:09

Τα ελληνικά url στο href των links χρειάζονται URL encoding.

PHP: urlencode()
ASP: Server.URLEncode()
ASP.NET: Server.UrlPathEncode()

Αν είναι δυνατό να αποφύγεις τα ελληνικά ονόματα στα αρχεία, ακόμα καλύτερα.

Άβαταρ μέλους
zinobios
Δημοσιεύσεις: 326
Εγγραφή: 15 Αύγ 2005 21:49

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από zinobios » 01 Απρ 2008 12:50

skeftomilos έγραψε:Τα ελληνικά url στο href των links χρειάζονται URL encoding.
PHP: urlencode()
Δεν γνωρίζω καθόλου PHP αλλά από μια ματια που έριξα στον κώδικα εννοείς ότι πρέπει όπου συναντήσω την μεταβλητή $url= πρέπει να γράφω από κάτω από αυτήν την γραμμή το : $url=urlencode($url) ; Αυτό πρέπει να κάνω ; Δυστυχώς δεν γνωρίζω ούτε καλά HTM :oops:

Ο αρχικός κώδικας είναι :

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

<?php
/*
############################################################
# e-Directory Index                                        #
############################################################
# Software Version  &#58; 1.4                                  #
# Project started   &#58; October 18th, 2003                   #
# Distrobuted by    &#58; http&#58;//www.eblah.com                 #
# License Agreement &#58; http&#58;//www.eblah.com/?v=license      #
############################################################
# Copyright &#40;c&#41; 2003/4        e-dir - all rights reserved. #
############################################################
*/

// Setup the basic script configuration below
$directory = "./";             // This is the directory in which you wish to index files &#40;no forward slash&#41;
$password  = "";              // Leave blank for none &#40;this is recommended if you want to limit directory browsing&#41;
                              // It is recommeded to leave this feature OFF. If on the PW will be in every URL
$dirdate   = "F d Y g&#58;i&#58;s a"; // This is the way the date will be parsed &#40;use&#58; http&#58;//us4.php.net/date for help&#41;
$images    = "./images";       // Directory where you images are located &#40;without trailing slash&#41;
$dirpath   = 0;               // Show "Dir Index Path"?  1 = yes, 0 = no

// Color Setup
$bgcolor   = "#663300";  // Main Background color &#40;#000000 default&#41;
$textcolor = "#000000";  // Main text color       &#40;#FFFFFF&#41;
$linkcolor = "#006699";  // Link color            &#40;#C0C0C0&#41;
$tabbg     = "#FFFFFF";  // Table BG color        &#40;#0F0F0F&#41;
$tilcolor  = "#663300";  // Table Title Color     &#40;#0A0A0A&#41;
$dipcol    = "#FFFFFF";  // "Files in DIR" Color  &#40;#2F2F2F&#41;
$listcol   = "#FFFFFF";  // Files List color      &#40;#0F0F0F&#41;


// Everything else runs to script, if you know what you're doing, you can edit ... if not, leave it alone
	$d = $_GET&#91;d&#93;;
	$s = $_GET&#91;s&#93;;
	$r = $_GET&#91;r&#93;;
	$passwordli = $_GET&#91;passwordli&#93;;

	if&#40;$password&#41; &#123; $pw = $passwordli; &#125;

	function fsize&#40;$file&#41; &#123;
		global $totsize;
		$sizes = filesize&#40;"$file"&#41;;
		$sizez = number_format&#40;&#40;$sizes/1024&#41;, 2, '.', ''&#41;;
		if&#40;$sizez > 1024&#41; &#123; $sizez = number_format&#40;&#40;&#40;$sizes/1024&#41;/1024&#41;, 2, '.', ''&#41;." MB"; &#125;
			else &#123; $sizez .= " KB"; &#125;
		$totsize = $totsize+$sizes;
		return&#40;$sizez&#41;;
	&#125;

	// Lets format the directory structure correctly!
	$testd = preg_split&#40;"/\//", $d&#41;;
	$d = '';
	foreach&#40;$testd as $begood&#41; &#123;
		if&#40;$begood != '' && $begood != '.'&#41; &#123;
			$d .= "$begood/";
			$oldbegood .= "$fdir/";
			$fdir = $begood;
		&#125;
	&#125;
	$d = ereg_replace&#40;"\/$", "", $d&#41;;
	$oldbegood = ereg_replace&#40;"^\/", "", $oldbegood&#41;;
	$oldbegood = ereg_replace&#40;"\/$", "", $oldbegood&#41;;
	if&#40;is_dir&#40;"$directory/$d"&#41;&#41; &#123; $directory .= "/$d"; $nd = $d; &#125;
	$dirlist = dir&#40;$directory&#41;;

	if&#40;$passwordli&#41; &#123; $pwseed = "&passwordli=$passwordli"; &#125;

	if&#40;!$fdir&#41; &#123; $fdir = "Home Directory"; &#125;
		else &#123; $updir = "<b><a href="?d=$oldbegood&s=$s&r=$r$pwseed"> Parent Directory</a></b>"; $updir2 = "<img src="$images/updir.gif">"; &#125;

	// Should we reverse it?
	if&#40;!$r && !$s&#41; &#123; $rev1 = 1; &#125;
	elseif&#40;!$r && $s == 'date'&#41; &#123; $rev2 = 1; &#125;
	elseif&#40;!$r && $s == 'size'&#41; &#123; $rev3 = 1; &#125;

	if&#40;$s == 'date'&#41; &#123; $sortedby = 'date last modified'; &#125;
	elseif&#40;$s == 'size'&#41; &#123; $sortedby = 'size'; &#125;
		else &#123; $sortedby = 'name'; &#125;

	if&#40;$r&#41; &#123; $reversedq = "reversed"; &#125;
		else &#123; $reversedq = "chronological"; &#125;

	$dircnt = 0;
	$filecnt = 0;
	while&#40;false !== &#40;$entry = $dirlist->read&#40;&#41;&#41;&#41; &#123;
		$icon = '';
		if&#40;$entry != '.' && $entry != '..' && $entry != 'index.php' && $entry != '.htaccess' && $entry != '.htpassword'&#41; &#123;
			if&#40;$nd != ''&#41; &#123; $curdir = "$nd/"; &#125;
			if&#40;is_dir&#40;"$dirlist->path/$entry"&#41;&#41; &#123;
				$size = "-"; $sizet = "-"; $icon = "folder"; $url = "?d=$curdir$entry&s=$s&r=$r$pwseed"; $oz = 1; ++$dircnt;
			&#125; else &#123;
				if&#40;preg_match &#40;"/&#40;.jpg|.jpeg|.gif|.bmp|.png&#41;/i",$entry&#41;&#41; &#123; $icon = "image"; &#125;
				elseif&#40;preg_match&#40;"/&#40;.mp3|.wav|.m3u|.wma&#41;$/i",$entry&#41;&#41; &#123; $icon = "audio"; &#125;
				elseif&#40;preg_match &#40;"/&#40;.htm|.html&#41;$/i",$entry&#41;&#41; &#123; $icon = "html"; &#125;
				elseif&#40;preg_match &#40;"/&#40;.exe|.pl|.php&#41;$/i",$entry&#41;&#41; &#123; $icon = "apps"; &#125;
				elseif&#40;preg_match &#40;"/&#40;.pdf&#41;$/i",$entry&#41;&#41; &#123; $icon = "pdf"; &#125;
				elseif&#40;preg_match &#40;"/&#40;.mpg|.mpeg|.mov|.wmv|.ram&#41;$/i",$entry&#41;&#41; &#123; $icon = "video"; &#125;
				elseif&#40;preg_match &#40;"/&#40;.zip|.ace|.tar&#41;$/i",$entry&#41;&#41; &#123; $icon = "zip"; &#125;
					else &#123; $icon = "default"; &#125;
				$size = filesize&#40;"$dirlist->path/$entry"&#41;;
				$url = "$curdir$entry";
				$oz = 2;
				++$filecnt;
				$sizet = fsize&#40;"$dirlist->path/$entry"&#41;;
			&#125;
		$modified = date &#40;$dirdate, filemtime&#40;"$dirlist->path/$entry"&#41;&#41;;

		++$cnt;
		if&#40;$s == 'size'&#41; &#123; $array&#91;$cnt&#93; = "$oz|$size|$entry|$url|$icon|$modified|$sizet"; &#125;
		elseif&#40;$s == 'date'&#41; &#123; $array&#91;$cnt&#93; = filemtime&#40;"$dirlist->path/$entry"&#41;."|$entry|$size|$url|$icon|$modified|$sizet"; &#125;
			else &#123; $array&#91;$cnt&#93; = "$oz|$entry|$size|$url|$icon|$modified|$sizet"; &#125;

		&#125;
	&#125;

	$totsize2 = number_format&#40;&#40;$totsize/1024&#41;, 2, '.', ''&#41;;
	if&#40;$totsize2 > 1024&#41; &#123; $totsize2 = number_format&#40;&#40;&#40;$totsize/1024&#41;/1024&#41;, 2, '.', ''&#41;." MB"; &#125;
		else &#123; $totsize2 .= " KB"; &#125;

	if&#40;$dirpath&#41; &#123;
		$dirpath2 = <<<EOT
<tr>
 <td width="200"><b>Directory Index Path&#58;</b></td>
 <td>$dirlist->path</td>
</tr>
EOT;
		$rowspan = "3";
	&#125; else &#123; $rowspan = "2"; &#125;

	// This is the main template used &#40;header&#41;
	echo <<<EOT
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-7">
<STYLE type="text/css">
/* Global Table Settings */

TR &#123; font-family&#58; Verdana, Arial; font-size&#58; 11px; &#125;

/* Links */

A&#58;link &#123; color&#58;$linkcolor; text-decoration&#58;none; &#125;

A&#58;visited &#123; color&#58;$linkcolor; text-decoration&#58;none; &#125;

A&#58;active &#123; color&#58;$linkcolor; text-decoration&#58;none; &#125;

A&#58;hover &#123; color&#58;$linkcolor; text-decoration&#58;none; &#125;
</style>
<title>$fdir</title>
</head>
<center>
    <p><a href="http&#58;//orthodoxyhub.gr/index.php"><img src="http&#58;//orthodoxyhub.gr/images/back.gif" border="0"></a></p>
    <p><font size="3" face="Verdana" color="white"><u><b>ΟΡΘΟΔΟΞΕΣ ΟΜΙΛΙΕΣ &amp; ΥΜΝΟΙ</b></u></font></p>
</center>

<body bgcolor="$bgcolor" text="$textcolor">

<table cellpadding="4" cellspacing="1" bgcolor="$tabbg" width="100%">
 <tr>
  <td bgcolor="$tilcolor">
   <table width="100%" valign="top">
    <tr>
     <td width="200" valign="top"><b>Friendly Directory&#58;</b></td>
     <td valign="top">$fdir</td>
     <td align="right" rowspan="$rowspan" valign="top">Directories <b>$dircnt</b><br>Files <b>$filecnt</b><br>Total directory size is <b>$totsize2</b></td>
    </tr>$dirpath2<tr>
     <td>
      <table cellpadding="3">
       <tr>
        <td width="20" align="center">$updir2</td>
        <td>$updir</td>
       </tr>
      </table>
     </td>
    </tr>
   </table>
  </td>
 </tr><tr>
  <td bgcolor="$dipcol">
   <table width="100%">
    <tr>
     <td><b><i>Files in this Directory</b></i></td>
     <td align="right">Sorted by <b>$sortedby</b> in <b>$reversedq</b> order.</td>
    </tr>
   </table>
  </td>
 </tr><tr>
  <td bgcolor="$listcol">
   <table cellpadding="3">
    <tr>
     <td width="20" align="center"></td><td width="50%"><b><a href="?d=$d&r=$rev1$pwseed">Name</a></b></td>
     <td width="25%"><b><a href="?d=$d&s=date&r=$rev2$pwseed">Date Last Modified</a></b></td>
     <td width="25%" align="right"><b><a href="?d=$d&s=size&r=$rev3$pwseed">Size</a></b></td>
    </tr>
EOT;

	if&#40;$password && $pw != $password&#41; &#123;
		echo <<<EOT
<tr>
 <form action="?" method="post"><td colspan="4" align="center"><br><b>There was an error</b><br>You must be logged in<br><br><input type="password" name="passwordli" value=""><br><input type="submit" value="Login"><br><br></td></form>
</tr>
EOT;
		foot_exit&#40;&#41;;
		
	&#125;

	if&#40;preg_match&#40;"/\.\./",$dirlist->path&#41;&#41; &#123;
		echo <<<EOT
<tr>
 <td colspan="4" align="center"><br><b>There was an error</b><br>You have been denied access to&#58; "$dirlist->path"<br><br></td>
</tr>
EOT;
		foot_exit&#40;&#41;;
	&#125;

	if&#40;!$array&#41; &#123;
		echo <<<EOT
<tr>
 <td colspan="4" align="center"><br><b>There was an error</b><br>There are no files in this directory<br><br></td>
</tr>
EOT;
		foot_exit&#40;&#41;;
	&#125;

	natcasesort&#40;$array&#41;;
	if&#40;$r&#41; &#123; $array = array_reverse&#40;$array&#41;; &#125;

	foreach&#40;$array as $shown&#41; &#123;
		if&#40;$s == 'size'&#41; &#123; list&#40;$t,$sizef,$entry,$url,$icon,$modified,$size&#41;= split &#40;"\|", $shown, 7&#41;; &#125;
			else &#123; list&#40;$t,$entry,$sizef,$url,$icon,$modified,$size&#41;= split &#40;"\|", $shown, 7&#41;; &#125;

		echo <<<EOT
<tr>
 <td width="25" align="center"><img src="$images/$icon.gif"></td><td><a href="$url">$entry</a></td>
 <td>$modified</td>
 <td align="right">$size</td>
</tr>
EOT;
	&#125;

	$dirlist->close&#40;&#41;;
	foot_exit&#40;&#41;;

	function foot_exit&#40;&#41; &#123;
		echo <<<EOT
   </table>
  </td>
 </tr>
</table><br>
<center><font size="1" face="Verdana">Powered by e-dir © 2003, 2004</font></center>
</body>
</html>
EOT;
		exit;
	&#125;

?>

Άβαταρ μέλους
fiskilis
Honorary Member
Δημοσιεύσεις: 14093
Εγγραφή: 16 Νοέμ 2003 22:44
Τοποθεσία: Athens
Επικοινωνία:

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από fiskilis » 01 Απρ 2008 13:10

αν απο την αρχη εδεινες latin ονοματα στα αρχεια δεν θα ειχες ολα αυτα τα προβληματα

γιατι δεν αλλαζεις με ενα ftp προγραμμα το ονομα των αρχειων ??

Άβαταρ μέλους
zinobios
Δημοσιεύσεις: 326
Εγγραφή: 15 Αύγ 2005 21:49

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από zinobios » 01 Απρ 2008 13:17

fiskilis έγραψε:αν απο την αρχη εδεινες latin ονοματα στα αρχεια δεν θα ειχες ολα αυτα τα προβληματα

γιατι δεν αλλαζεις με ενα ftp προγραμμα το ονομα των αρχειων ??
Τα αρχεία είναι ~ 3.500 :( και (αλλά και θέλω να) είναι όλα με ελληνικά ονόματα...

Άβαταρ μέλους
fiskilis
Honorary Member
Δημοσιεύσεις: 14093
Εγγραφή: 16 Νοέμ 2003 22:44
Τοποθεσία: Athens
Επικοινωνία:

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από fiskilis » 01 Απρ 2008 13:25

ναι αλλα με ενα ftp προγραμμα τους αλαζεις τιτλους χωρις να χρειαζεται να τα κατεβασεις απλα Online !!!

το οτι εσυ θες να ειναι με ελληνικα ονοματα ειδες οτι δημιουργει προβλημα στο κατεβασμα τους απλα ετσι θα διωξεις τους επισκεπτες σου

οποτε τι ειναι καλυτερο ?
ευχαριστημενοι επισκεπτες και να παρουν οτι θελουν ?
δυσαρεστημενοι επισκεπτες που θα φυγουν αμεσως ?

δικο σου ειναι εσυ διαλεγεις !!!
και μαλλον θα πρεπει να τους αλλαξεις την ονομασια απο ελληνικα σε Latin !!!!

Άβαταρ μέλους
zinobios
Δημοσιεύσεις: 326
Εγγραφή: 15 Αύγ 2005 21:49

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από zinobios » 01 Απρ 2008 13:33

Μα με τον firefox κατεβαίνουν κανονικά με ελληνικά ονόματα :o
Μου φαίνεται πολύ "τραβηγμένο" το 2008 να χρειάζεται να αλλάξω τα filenames...

Άβαταρ μέλους
fiskilis
Honorary Member
Δημοσιεύσεις: 14093
Εγγραφή: 16 Νοέμ 2003 22:44
Τοποθεσία: Athens
Επικοινωνία:

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από fiskilis » 01 Απρ 2008 13:36

αντε παλι τα ιδια !
να βαλεις ενα ενημερωτικο τοτε οτι μπορειτε να κατεβασετε τα αρχεια μας μονο αν εχετε εγκατεστημενο το ff και βαλε και ενα λινκ εγκαταστασης του μεσα απο τα tools του adsense σου να βγαλεις και κανα φραγκο

με ΙΕ θα εχεις το προβλημα

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από skeftomilos » 01 Απρ 2008 15:53

Το $url=urlencode($url); νομίζω πρέπει να μπει αμέσως πριν το echo <<<EOT

Άβαταρ μέλους
zinobios
Δημοσιεύσεις: 326
Εγγραφή: 15 Αύγ 2005 21:49

Γιατί δεν "κατεβαίνουν" τα αρχεία με ελληνικό όνομα;

Δημοσίευση από zinobios » 01 Απρ 2008 19:49

skeftomilos έγραψε:Το $url=urlencode($url); νομίζω πρέπει να μπει αμέσως πριν το echo <<<EOT
Ναί το έβαλα αυτό (γραμμή 233) και τώρα ο ΙΕ "καταλαβαίνει" (για να το κατεβάσει) το αρχείο με το ελληνικό όνομα αλλά το "σώνει" όμως σαν : %D7%D1%C9%D3%D4%CF%D5%C3%C5%CD%CD%C1.mp3 .
Αυτό πώς μπορεί να διορθωθεί ;

Απάντηση

Επιστροφή στο “Γενικές ερωτήσεις κατασκευής ιστοσελίδων”

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

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