Проблем с качването на файл на кирилица

confiscate

Registered
Здравейте ,

Код:
if (($_FILES["paper"]["type"] == "application/msword" || ($_FILES["paper"]["type"] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document")) && ($_FILES["paper"]["size"] < 10485760)) {
                                    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                                    $rand_dir_name = substr(str_shuffle($chars), 0, 15);
                                    mkdir("userdata/papers/$rand_dir_name/");
                                    if (file_exists("userdata/papers/$rand_dir_name/" . $_FILES["paper"]["name"])) {
                                        $error = "<div class='error'>The file exists!</div>";
                                    }
                                    else {
                                            move_uploaded_file($_FILES["paper"]["tmp_name"], "userdata/papers/$rand_dir_name/" . urlencode($_FILES["paper"]["name"]));
                                            $paper = $_FILES["paper"]["name"];
                                            $paperInsert = mysqli_query(....)");

Проблемът идва, когато искам да кача файл на кирилица. Файлът в БД излиза с името си на кирилица както трябва. Когато изкарвам резултат, също нямам ядове, но каченият файл в папката е на маймуници..

Има ли начин да избегна това ?

Благодаря предварително !
Поздрави
 
Затова не се записват файлове със истинките им имена !
Направи си една променлива, която да му държи истинското име и си го записвай в ДБ, а за име на файла си генерирай някакво.

Пример:
PHP:
$org_name = $_FILES['paper']['name']; // twa moje da otiwa w DB
$newFileName = md5("_SHIT_".$org_name."_".time());
move_uploaded_file($_FILES['paper']['tmp_name'], 'dir/'.$newFileName.".RAZSHIRENIE(doc)");
echo "gotowo";
:?:
 
Ми на първо време трябва да го вземеш.

PHP:
$ext = end(explode(".",$_FILES['paper']['name']));
if($ext == 'doc')
{
   echo "formata e .DOC"; // wzima razshirenieto BEZ tochkata
}

И със кода, който ти дадох:

PHP:
$ext = end(explode(".",$_FILES['paper']['name'])); // format
$org_name = $_FILES['paper']['name']; // twa moje da otiwa w DB

$newFileName = md5("_SHIT_".$org_name."_".time());

move_uploaded_file($_FILES['paper']['tmp_name'], 'dir/'.$newFileName.".".$ext); // ТОВА ще добави накрая разширението на файла, един вид просто ще му смениш името ;)

echo "gotowo";
:?: :?:
 

Back
Горе