@kiberchainik
начинающий найкрутейшЫй програмЁр

Почему обрезаются названия файлов при загрузке php?

есть скрипт загрузки файлов на php
if(!empty($_FILES['imagesProduct']['name'][0])) {
                    if (empty($msg['errors'])) {
                        $images = array();
                        
                        if (!file_exists('images/products/'.$seo_name.'/')) mkdir("images/products/".$seo_name."/");
                        
                        foreach ($_FILES['imagesProduct']['name'] as $k=>$v) {
                            $uploaddir = "images/products/".$seo_name."/";
                            $apend=date('YmdHis').rand(100,1000).'.png';
                            $uploadfile = $uploaddir.$apend;
                        
                            if($_FILES['imagesProduct']['type'][$k] == "image/gif" || $_FILES['imagesProduct']['type'][$k] == "image/png" ||
                            $_FILES['imagesProduct']['type'][$k] == "image/jpg" || $_FILES['imagesProduct']['type'][$k] == "image/jpeg") {
                                $blacklist = array(".php", ".phtml", ".php3", ".php4");
                            
                                foreach ($blacklist as $item) {
                                    if(preg_match("/$item\$/i", $_FILES['imagesProduct']['name'][$k])) {
                                    exit;
                                    }
                                }
                                $images[] = $uploadfile;
                                move_uploaded_file($_FILES['imagesProduct']['tmp_name'][$k], $uploadfile);
                            }
                        }
                        $images_product = serialize($images);
                    }
                } else {
                    $images_product = '0';
                }

когда я загружаю файлы через браузер мозила, названия файлов урезаются, при том что исходные названия на латинском языке!
после загрузки файла, при выводе ссылки на экран она такая: images/products/nazvanie_tovara/20200202140747831.png
но в каталоге на сервере вот так: images/products/nazvanie_tovara/02140747831.png
  • Вопрос задан
  • 264 просмотра
Пригласить эксперта
Ответы на вопрос 1
zavoloklom
@zavoloklom
Fullstack разработчик
В этой строке вы задаете путь до папки загрузки
$uploaddir = "images/products/".$seo_name."/";

В этой создаёте новое название файла:
$apend=date('YmdHis').rand(100,1000).'.png';

А затем объединяет их:
$uploadfile = $uploaddir.$apend;

Если вам нужно сохранять исходное название файла - измените принцип формирования переменной $apend.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы