Проблем с файлове

Dark_Mage

Registered
Имам следния проблем
Става въпрос за http://domashni.org
Някой потребители са добавяли файлове на български
пр. "дон кихот.doc"
И като се натисне на изтегли ми изписва не съществува такава страница.
С файловете написани на латиница нямам проблем

Ако може да ми кажете от къде идва проблема и как мога да го разреша. :cry:
 
Можеш още при качването, тоест , след като е качен файла вече , да го преименоваш с латински букви , и тогва да го запишеш в базата данни.
Качвам файл : индекс.док.doc
качва се с това име , след което се преименова на : indeks.dok.doc
и ти записваш в базата данни indeks.dok.doc

$filename = "индекс.док.dok";
$bg = array ( 'а','б','в','г'...............'ю','я');
$ен = array ( 'a','b','v','g'...............'iu','q');


$newfilename = str_replace($bg, $wn, $filename);


rename("./upload/download/".$filename,"./upload/download".$newfilename);

и след това записваш $newfilename в базата данни.
 
index каза:
Можеш още при качването, тоест , след като е качен файла вече , да го преименоваш с латински букви , и тогва да го запишеш в базата данни.
Качвам файл : индекс.док.doc
качва се с това име , след което се преименова на : indeks.dok.doc
и ти записваш в базата данни indeks.dok.doc

$filename = "индекс.док.dok";
$bg = array ( 'а','б','в','г'...............'ю','я');
$ен = array ( 'a','b','v','g'...............'iu','q');


$newfilename = str_replace($bg, $wn, $filename);


rename("./upload/download/".$filename,"./upload/download".$newfilename);

и след това записваш $newfilename в базата данни.

това вече го направих но тези които имам сега как ад ги оправя
 
Преименуваш ги ръчно ;)
Тоест отиваш през FTP и сменяш името ;)
 
$dir = "./upload";
$fd = opendir($dir);


$bg = array ( 'а','б','в','г'...............'ю','я');
$en = array ( 'a','b','v','g'...............'iu','q');

while (($file = readdir($fd))) {
if($file == "." || $file == ".." ) { continue;}
$newfilename = str_replace($bg, $wn, $file);
rename("./upload/download/".$filename,"./upload/download".$newfilename);
$SQL = "UPDATE `test` SET `zaglavie` = '$newfilename' WHERE
`zaglavie` = '$file LIMIT 1 ; "

$q = mysql_query($SQL);
IF ($q) { echo " RENAME -> $file -> to -> $newfilename -> OK "; } else {

echo " RENAME -> $file -> to -> $newfilename -> ERROR ";
}
}



Не съм го пробвал, тук тамее може да има някоя грешка...
 
благодаря
само да попитам как се изтриват примерно първите 10 символа от низ
примерно
имам в променливата
$var = 'asdfghj';
как да го направя
$var = 'fghj';
 
Какво ще рече това
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@domashni.org and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
 

Горе