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

C++ JAVA
Dark_Mage
Нов
Нов
Posts: 98
Joined: Sun Sep 09, 2007 9:44 am

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

Post by Dark_Mage » Sun Nov 23, 2008 1:40 pm

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

Ако може да ми кажете от къде идва проблема и как мога да го разреша. :cry:

User avatar
index
Web-tourist
Web-tourist
Posts: 5405
Joined: Thu Sep 07, 2006 11:08 pm
Answers: 198
Contact:

Post by index » Sun Nov 23, 2008 2:48 pm

Можеш още при качването, тоест , след като е качен файла вече , да го преименоваш с латински букви , и тогва да го запишеш в базата данни.
Качвам файл : индекс.док.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 в базата данни.

Dark_Mage
Нов
Нов
Posts: 98
Joined: Sun Sep 09, 2007 9:44 am

Post by Dark_Mage » Sun Nov 23, 2008 2:56 pm

index wrote:Можеш още при качването, тоест , след като е качен файла вече , да го преименоваш с латински букви , и тогва да го запишеш в базата данни.
Качвам файл : индекс.док.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 в базата данни.


това вече го направих но тези които имам сега как ад ги оправя

User avatar
s1lv3r
Турист
Турист
Posts: 286
Joined: Sat Nov 22, 2008 9:24 pm
Answers: 24

Post by s1lv3r » Sun Nov 23, 2008 2:57 pm

Преименуваш ги ръчно ;)
Тоест отиваш през FTP и сменяш името ;)
Image

User avatar
lam3r4370
Шаман
Шаман
Posts: 3424
Joined: Wed Aug 20, 2008 4:12 pm
Answers: 131

Post by lam3r4370 » Sun Nov 23, 2008 2:59 pm

phpmyadmin->намираш и прейменуваш

Dark_Mage
Нов
Нов
Posts: 98
Joined: Sun Sep 09, 2007 9:44 am

Post by Dark_Mage » Sun Nov 23, 2008 3:04 pm

над 500 файла ръчно да преименувам?
не може ли по друг начин

User avatar
s1lv3r
Турист
Турист
Posts: 286
Joined: Sat Nov 22, 2008 9:24 pm
Answers: 24

Post by s1lv3r » Sun Nov 23, 2008 3:07 pm

Мне...
Вече са качени,така че трябва или ръчно или наново да се качат.
Image

User avatar
lam3r4370
Шаман
Шаман
Posts: 3424
Joined: Wed Aug 20, 2008 4:12 pm
Answers: 131

Post by lam3r4370 » Sun Nov 23, 2008 3:08 pm


User avatar
index
Web-tourist
Web-tourist
Posts: 5405
Joined: Thu Sep 07, 2006 11:08 pm
Answers: 198
Contact:

Post by index » Sun Nov 23, 2008 3:27 pm

$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 ";
}
}



Не съм го пробвал, тук тамее може да има някоя грешка...

Dark_Mage
Нов
Нов
Posts: 98
Joined: Sun Sep 09, 2007 9:44 am

Post by Dark_Mage » Sun Nov 23, 2008 3:53 pm

благодаря
само да попитам как се изтриват примерно първите 10 символа от низ
примерно
имам в променливата
$var = 'asdfghj';
как да го направя
$var = 'fghj';

Post Reply