Olá Pessoal, tenho este script que esta funcionando muito bem via dropzone, só que me deparei com um problema que quando uma pessoa envia o arquivo com um nome que tem acento acaba não carregando as imagens.
Como faço para renomear o arquivo removendo os acentos e espaço no momento do upload, exemplo: Jéssica e Paulo.jpg --> jessica-e-paulo.jpg
Meu Script em Yii 2:
public function actionUpload()
{
$album = Album::findOne(['id'=>$_GET['ab'], 'IdCliente' => Yii::$app->user->identity->id]);
if(count($album)==0){
Yii::$app->session->setFlash("error", "Você não tem permissão de executar está ação.");
return $this->redirect(['/producao']);
}
$fileName = 'file';
$uploadPath = Yii::getAlias($album->alias);
$thumb = Yii::getAlias($uploadPath . "/thumb");
if (!is_dir($thumb)) {
FileHelper::createDirectory($thumb);
}
if (isset($_FILES[$fileName])) {
$file = \yii\web\UploadedFile::getInstanceByName($fileName);
$alias = $uploadPath. '/' .$file->name;
$aliasthumb = $thumb.'/'. $file->name;
$aliasdb = str_replace('@common/uploads','@upload', $album->alias). '/thumb/' . $file->name;
$fotoexiste = Foto::findAll(['image'=>$aliasdb]);
if(count($fotoexiste) == 0){
if ($file->saveAs($alias)) {
Image::thumbnail($alias, 200, 150,\Imagine\Image\ImageInterface::THUMBNAIL_INSET)->save(Yii::getAlias($aliasthumb), ['quality' => 80]);
$model = new Foto();
$model->idAlbum = $_GET['ab'];
$model->image = $aliasdb;
$model->created_at = time();
$model->updated_at = time();
if(!$model->save()){
@unlink($alias);
}
echo \yii\helpers\Json::encode($file);
}
}
}
return false;
}
Desde já agradeço.