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;