Загрузить файл в формате PHP? - PullRequest
0 голосов
/ 16 июня 2020

Когда я загружаю файл изображения на хост, почему расширение файла повторяется снова? Я проверяю, что имя файла на хосте выглядит как test.jpg.jpg

Вот код:

$uploadPath = "../../upload/Image/";

$handle = new Upload($_FILES['pic'], 'zh_TW');    

if($handle->uploaded){
    $pic=$_FILES['pic']['name'];
    if($pic != ''){
        $filename = $pic;
    }
    else{
        $microSecond = microtime();
        $filename = substr($microSecond, 11, 20).substr($microSecond, 2, 8);
    }                

    $handle->file_new_name_body     = $filename;
    $handle->image_resize           = true;
    $handle->image_ratio_y          = true;
    $handle->image_x                = 212;
    $handle->image_ratio_fill       = true;
    $handle->allowed                = array('image/*');
    $handle->file_overwrite         = true;
    $handle->process($uploadPath);
    if($handle->processed){ 
        $handle->file_dst_name = $filename;
    }
    else{
        echo "<script>";
        echo "alert('$handle->error');";
        echo "history.back();";
        echo "</script>";
        die;
    }
}
else{
    $filename = $_POST['currentPic'];
}

1 Ответ

0 голосов
/ 16 июня 2020

Исходя из ваших условий. вы можете просто получить имя одной части с помощью функции разнесения.

if($handle->uploaded){
    $pic=$_FILES['pic']['name'];
    if($pic != ''){
        //$filename = $pic;
        $filename = explode(".",$pic)[0];
    }
    else{
        $microSecond = microtime();
        $filename = substr($microSecond, 11, 20).substr($microSecond, 2, 8);
    }  

Это значит, что вам не нужно изменять свой класс, также, если вы измените свой класс, у вас возникнут проблемы на стороне «ELSE» вашего условие, которое потребует дополнительных затрат времени на то, чтобы получить расширение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...