验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

php如何上传文件并重命名

阅读:856 来源:乙速云 作者:代码code

php如何上传文件并重命名

一、上传文件

在PHP中,文件上传使用的是$_FILES超级全局数组。该数组包含了上传文件的信息,例如上传文件的名字、大小和类型等。

下面是一个简单的文件上传代码示例:

if(isset($_FILES['file'])){
    $file_name = $_FILES['file']['name'];
    $file_tmp_name = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $file_error = $_FILES['file']['error'];

    //将上传的文件移动到指定目录
    move_uploaded_file($file_tmp_name, $file_name);
}

在上述代码中,首先使用isset()函数检查$_FILES['file']是否被设置,然后从超级全局数组中获取上传文件的详细信息,包括文件名、临时文件名、文件大小、文件类型和错误信息。最后,使用move_uploaded_file()函数将文件从临时文件夹移动到指定的目录中。

二、改变上传文件名字

假设我们需要对上传的文件进行重命名,以避免文件名冲突或增加安全性。可以使用PHP中现成的函数进行文件名修改。

函数1:rename()

可以使用rename()函数来更改上传文件的名称。rename()函数有两个参数,分别是原文件名和新文件名。

if(isset($_FILES['file'])){
    $file_name = $_FILES['file']['name'];
    $file_tmp_name = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $file_error = $_FILES['file']['error'];

    //将上传的文件移动到指定目录,并改变文件名称
    $new_name = "newfile.jpg";
    $new_path = "uploads/".$new_name;
    move_uploaded_file($file_tmp_name, $new_path);
    
    rename($new_path, "uploads/".rand(1000, 9999)."_".$new_name);
}

在上述代码中,首先将上传的文件移动到指定目录,并将上传文件的名称更改为newfile.jpg。然后,使用rename()函数将文件名更改为随机数加下划线和原始文件名newfile.jpg。使用随机数和时间戳可以避免文件名重复,提高文件上传的安全性。

函数2:move_uploaded_file()

在移动上传文件时,可以直接使用move_uploaded_file()函数更改文件名。

if(isset($_FILES['file'])){
    $file_name = $_FILES['file']['name'];
    $file_tmp_name = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $file_error = $_FILES['file']['error'];

    //修改上传文件的名称
    $new_name = "newfile.jpg";
    move_uploaded_file($file_tmp_name, "uploads/".rand(1000, 9999)."_".$new_name);
}

在上述代码中,首先获取上传文件的详细信息,然后将上传文件移动到指定目录,并将文件名更改为随机数加下划线和新文件名newfile.jpg。

分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>