【问题标题】:How to change name of uploaded file in php? [closed]如何在php中更改上传文件的名称? [关闭]
【发布时间】:2013-12-25 00:54:38
【问题描述】:

我有这个代码来上传 jpg 文件。我需要将某人上传的文件重命名为 newtexture.jpg'。

<?php
$demo_mode = false;
$upload_dir = 'uploads/';
$allowed_ext = array('jpg','jpeg');

if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
    exit_status('Error! Wrong HTTP method!');
}

if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){
    $pic = $_FILES['pic'];
    if(!in_array(get_extension($pic['name']),$allowed_ext)){
        exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');
    }   
    if($demo_mode){
        $line = implode('       ', array( date('r'), $_SERVER['REMOTE_ADDR'], $pic['size'], $pic['name']));
        file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);
        exit_status('Uploads are ignored in demo mode.');
    }
    if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){
        exit_status('File was uploaded successfuly!');
    }
}
exit_status('Something went wrong with your upload!');

function exit_status($str){
    echo json_encode(array('status'=>$str));
    exit;
}

function get_extension($file_name){
    $ext = explode('.', $file_name);
    $ext = array_pop($ext);
    return strtolower($ext);
}
?>

附言。它说它主要是编码的,所以要添加更多细节?还有什么...我是一名学生,我的 Capstone 项目需要它,这是紧急情况...

【问题讨论】:

    标签: php upload rename


    【解决方案1】:

    move_uploaded_file() 中的第二个参数是新文件名,因此您只需将其更改为您想要的。

    if(move_uploaded_file($pic['tmp_name'], $upload_dir.'newtexture.jpg')){
    

    【讨论】:

    • 谢谢!我希望我的声望超过 15 个 :)
    • @FragkiskosMysirlakis 实际上,你现在就做 :)
    • 是的,哈哈我现在有...
    【解决方案2】:

    将您的文件名作为第二个参数传递给move_uploaded_file()

    $fileName = 'newtexture.jpg';
    
    if(move_uploaded_file($pic['tmp_name'], $upload_dir.$fileName)){
    

    【讨论】:

    • 您说将文件名作为第二个参数传递,但您将路径传递给新文件。那么什么解决方案是正确的呢?
    【解决方案3】:

    move_uploaded_file 接受两个参数:

    1. 要移动的临时文件名。
    2. 新的永久文件路径。
    bool move_uploaded_file ( string $filename , string $destination )
    

    因此,您必须指定第二个参数(路径 + 新文件名)。 例如

    move_uploaded_file($pic['tmp_name'], $upload_dir.'newtexture.jpg')
    

    【讨论】:

      猜你喜欢
      • 2013-11-07
      • 1970-01-01
      • 2018-04-17
      • 2013-02-14
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 2013-03-12
      • 2015-01-09
      相关资源
      最近更新 更多