Доброго времени суток! Использую скрипт PDO Crud на локальном вебсервере. Кто подскажет как правильно реализовать загрузку файлов с русскими именами. Вот собственно его код загрузчика Код (Text): /** * Upload files using html file control. You can apply various restriction to make file uploading more secure. * @param string $fileName file upload control * @param string $fileUploadPath Path to upload file * @param int $maxSize Max size allowed, default is 10000000 * @param array $allowedFileTypes Allowed file types * * return boolean return true if file uploaded successfully else false */ function fileUpload($fileName, $fileUploadPath = "", $maxSize = 10000000, $allowedFileTypes = array()) { if ($this->checkValidFileUpload($fileName, $fileUploadPath, $maxSize, $allowedFileTypes)) { if (!is_dir($fileUploadPath) && $fileUploadPath) { mkdir($fileUploadPath); } $destinationFileName = time() . "_" . $fileName["name"]; $destinationPath = $fileUploadPath . $destinationFileName; if (move_uploaded_file($fileName["tmp_name"], $destinationPath)) { $destinationPath = $fileUploadPath . $destinationFileName; $fileExt = $this->getFileExtension($destinationPath); if (in_array($fileExt, array("jpg", "gif", "png"))) { $newFileName = substr($destinationFileName, 0, strlen($destinationFileName) - strlen($fileExt) - 1); require_once(dirname(__FILE__) . "/library/abeautifulsite/SimpleImage.php"); $img = new SimpleImage(); if (isset($this->imageDimensions)) { foreach ($this->imageDimensions as $width => $height) { $resizeImg = $newFileName . "_" . $width . "_" . $height . "." . $fileExt; $newImage = $img->load($destinationPath)->resize($width, $height)->save($fileUploadPath . $resizeImg); } } if (isset($this->watermark)) { $img->load($destinationPath)->overlay($this->watermark["overlay"], $this->watermark["position"], $this->watermark["opacity"], $this->watermark["xOffset"], $this->watermark["yOffset"])->save($destinationPath); } if (isset($this->imageFlip)) { $img->load($destinationPath)->flip($this->imageFlip)->save($destinationPath); } if (isset($this->imageThumbnail)) { $img->load($destinationPath)->thumbnail($this->imageThumbnail["width"], $this->imageThumbnail["height"], $this->imageThumbnail["focal"])->save($destinationPath); } if (isset($this->imageCrop)) { $img->load($destinationPath)->crop($this->imageCrop["x1"], $this->imageCrop["y1"], $this->imageCrop["x2"], $this->imageCrop["y2"])->save($destinationPath); } if (isset($this->imageText)) { $imgText = $this->imageText; $img->load($destinationPath)->text($imgText["text"], $imgText["font_file"], $imgText["font_size"], $imgText["color"], $imgText["position"], $imgText["x_offset"], $imgText["y_offset"], $imgText["stroke_color"], $imgText["stroke_size"], $imgText["alignment"], $imgText["letter_spacing"])->save($destinationPath); } } return $this->settings["uploadURL"] . $destinationFileName; } else return false; } return false; }
При загрузке генерировать "кошерное" имя файла. Соответствие с оригинальным именем обеспечить записью в базе данных.
@era1fgg если коротко, никогда не сохраняй загружаемые файлы под их исходными именами. сочиняй новые имена.