0

次のコードでphpファイルを指すimageという名前のファイル入力を含むhtmlフォームがあります。

$date =  date( "Y_m_d_H_i_s_u" );

function upload() {

$info = pathinfo($_FILES['image']['name']);
$target = "uploads/" . $date . $info['extension'];

if(move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
    return true;
} else{
    return false;
}
}

元のファイル名ではなく、ファイル名に時刻を含めたい。これがうまくいかない理由がわかりません!アップロードされたすべてのファイルには、拡張子という名前が付けられます。デートがどうにもうまくいかない。

4

4 に答える 4

1

のスコープが間違っています$date。関数に渡すか$date、グローバル変数にする必要があります

$date =  date( "Y_m_d_H_i_s_u" );

function upload($date) {
    $info = pathinfo($_FILES['image']['name']);
    $target = "uploads/" . $date . $info['extension'];

    if(move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
        return true;
    } else{
        return false;
    }
}

また

$date =  date( "Y_m_d_H_i_s_u" );

function upload() {
    global $date;
    $info = pathinfo($_FILES['image']['name']);
    $target = "uploads/" . $date . $info['extension'];

    if(move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
        return true;
    } else{
        return false;
    }
}
于 2012-05-12T22:09:17.337 に答える
1

これは私の観察です、あなたはscope問題を抱えています

$date =  date( "Y_m_d_H_i_s_u" );

日付が常に変わるかどうか試してください

function upload() {
    $date =  date( "Y_m_d_H_i_s_u" );
    $info = pathinfo ( $_FILES ['image'] ['name'] );
    $target = "uploads/" . $date . $info ['extension'];
    if (move_uploaded_file ( $_FILES ['image'] ['tmp_name'], $target )) {
        return true;
    } else {
        return false;
    }
}
于 2012-05-12T22:09:28.993 に答える
1

$date は関数の範囲外です。これを修正するには 2 つの方法があります。

オプション1

$date = date( "Y_m_d_H_i_s_u" );

function upload() {
    globel $date;
    $info = pathinfo($_FILES['image']['name']);
    $target = "uploads/" . $date . $info['extension'];

    if(move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
        return true;
    }
    else{
        return false;
    }
}

オプション 2

$date = date( "Y_m_d_H_i_s_u" );

function upload($date) {
    $info = pathinfo($_FILES['image']['name']);
    $target = "uploads/" . $date . $info['extension'];

    if(move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
        return true;
    }
    else{
        return false;
    }
}

upload ($date);
于 2012-05-12T22:10:59.253 に答える
1

move_uploaded_file直接お帰りいただくことも可能です

return move_uploaded_file($_FILES['image']['tmp_name'], $target)
于 2012-05-12T22:13:40.827 に答える