php重命名上传文件
上传文件或图片进行重命名是我们在php上传中会碰到的一个问题了,在重命名无非就是对你上传的文件生成一个随机的字符串了,包括有Md5,随机,或按时间日期来重命名了,下面我来给大家介绍。
如我们在上传文件页面中如下操作:
$name=$_FILES['userfile']['name'];//将所上传的文件名称赋予name
然后我们要对它进行重命名
//文件名的自动生成
list($usec,$new_name)=explode("",microtime());
if(@$extension_name){//限制文件类型为jpg、gif、png、bmp
move_uploaded_file($tmp_name,$new_dir.'/'.$new_name.'.'.$extension_name);//移动到目标文件夹
echo'上传成功';
这样我们就把文件名以时间日期生成了一个新的文件名了,例:
<formaction="upload_file.php"method="post"
enctype="multipart/form-data">
<labelfor="file">Filename:</label>
<inputtype="file"name="file"id="file"/>
<br/>
<inputtype="submit"name="submit"value="Submit"/>
</form>
以下是我添加的将文件名重命名为系统时间的代码:
<?php$date=date(ymdhis);
//echo($date);
if((($_FILES["uppic"]["type"]=="image/gif")
||($_FILES["uppic"]["type"]=="image/jpeg")
||($_FILES["uppic"]["type"]=="image/pjpeg"))
&&($_FILES["uppic"]["size"]<2000000))
{
if($_FILES["uppic"]["error"]>0)
{
echo"ReturnCode:".$_FILES["uppic"]["error"]."<br/>";
}
else
{
//echo"Upload:".$_FILES["uppic"]["name"]."<br/>";
//echo"Type:".$_FILES["uppic"]["type"]."<br/>";
//echo"Size:".($_FILES["uppic"]["size"]/1024)."Kb<br/>";
//echo"Tempfile:".$_FILES["uppic"]["tmp_name"]."<br/>";
$uptype=explode(".",$_FILES["uppic"]["name"]);
$newname=$date.".".$uptype[1];
//echo($newname);
$_FILES["uppic"]["name"]=$newname;
if(file_exists("pics/".$_FILES["uppic"]["name"]))
{
echo$_FILES["uppic"]["name"]."alreadyexists.";
}
else
{
$_FILES["uppic"]["name"]=
move_uploaded_file($_FILES["uppic"]["tmp_name"],
"pics/".$_FILES["uppic"]["name"]);
echo"<script>alert('上传成功!')</script>";
echo"<script>window.location.href='
}
}
}
else
{
echo"Invalidfile";
}
?>
大家可以参考一下
㈡ 如何用PHP给上传的文件改名
PHP 中的 move_uploaded_file() 函数可以实现,改相应的参数即可
move_uploaded_file(file,newloc)
参数说明
file 必需。规定要移动的文件。
newloc 必需。规定文件的新位置。
注释:本函数仅用于通过 HTTP POST 上传的文件。
注意:如果目标文件已经存在,将会被覆盖。
例如:
<?php
//上传路径
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
//下面的$name就是上传后的文件名字,可以改变,比如之前文件名字为:1.gif 可以改为 2.gif
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>
㈢ thinkphp里上传的图片如何进行重命名,命名为自己想要的格式,它默认格式是时间戳的
TP文档上说明有这个参数,saveRule保存规则:
不为空的时候可以选择手册上说的几种命名规则,不同的场景使用不同的方式,只要加个判断就可以了。如果同名需要覆盖原文件的话添加属性:$upload->uploadReplace = true;
㈣ php 如何对上传文件的文件名进行重命名
<html>
<body>
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="test.php">
上传图片
<input name="tupian" type="file" id="tupian" />
<input type="submit" name="button" id="button" value="上传" />
</form>
<?php
if (isset($_FILES['tupian'])) {
// echo '<pre>';
// print_r($_FILES["tupian"]);
// echo '</pre>';
if ($_FILES["tupian"]['error'] == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["tupian"]["tmp_name"];
$name = $_FILES["tupian"]["name"];
move_uploaded_file($tmp_name, "$name");//在这里进行文件改名
}
echo '<img src="' . $name . '" />';
}
?>
</body>
</html>
㈤ PHP上传重命名文件,怎么能以时间重命名,
分享一个源码给大家:
复制代码 代码如下:
<?php
$file = dirname(__FILE__).'/新建 文本文档.txt';
echo L_rename($file);
function L_rename($file){
$iCount = 0;
$File_type = strrchr($file, '.');
$FilePath = substr($file, 0, strrpos($file, '.'));
while (true) {
if (is_file($file)) {
++$iCount;
$file = $FilePath . '('. $iCount .')' . $File_type;
}else{
break;
}
}
if (fopen($file, 'w')) {$Msg = '创建成功 '.$file;}
return $Msg;
}
?>
㈥ php 多文件上传重命名问题
print_r($_FILES)
你可以知道结构
重命名问题很好解决,
比如 你上传2个 1.gif 先是读取扩展名 $_FILES 里面就有
名字全部要重命名 time().mt_rand(100,999).扩展名
就是时间戳+100~999 之前的随机数 进行重命名
把真名的信息保存到数据库里面, 明白了吧 呵呵
㈦ PHP上传文件,怎么自动重命名附源码。
只用日期会有重名的可能
$_FILES["Filedata"]["name"] = date("Y-m-d") . rand() . $type;
就是在合适的时候改变$_FILES["Filedata"]["name"]的值,如下
echo "上传的文件: " . $_FILES["Filedata"]["name"] . "<br />";
echo "文件类型: " . $type . "<br />";
echo "文件大小: " . ($_FILES["Filedata"]["size"] / 1024) . " Kb<br />";
echo "临时文件: " . $_FILES["Filedata"]["tmp_name"] . "<br />";
$_FILES["Filedata"]["name"] = md5(microtime(1) . rand()) . $type;