如何在上传文件之前或之后重命名文件?我只想重命名文件名,而不是扩展名.
$changeTXT = $_SESSION['username'];
$uploaderName = strtolower($changeTXT);
$changeTXT = strtolower($changeTXT);
$changeTXT = ucfirst($changeTXT);
$filelocation = $_POST['userfile'];
$filename = $_POST['filename'];
$max_size = $_POST['MAX_FILE_SIZE'];
$file = $_FILES['userfile'];
$allowedExtensions = array("wma", "mp3", "wav");
function isAllowedExtension($fileName) {
global $allowedExtensions;
return in_array(end(explode(".", $fileName)), $allowedExtensions);
}
if($file['error'] == UPLOAD_ERR_OK) {
if(isAllowedExtension($file['name'])) {
$uploaddir = "uploads/".$uploaderName."/";
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Thank you for uploading your music!<br /><br />";
} else {
echo "Your file did not upload.<br /><br />";
}
echo "\n";
echo "<a href='index.php'>Return</a> to index.<br /><br />$uploaddir";
} else {
echo "You have tried to upload an invalid file type.<br /><br />";
}
} else die("Cannot upload");
Run Code Online (Sandbox Code Playgroud)
Óla*_*age 22
使用时move_uploaded_file
,您可以选择文件名,这样您就可以选择任何你想要的东西.
当您上传文件时,将其放入具有临时名称的临时目录,move_uploaded_file()
允许您移动该文件,并且您还需要设置文件的名称.
我建议你查看Verot的文件上传课程.它通过php恢复文件上传的许多痛苦,并使您的代码更易读/可维护.
至于问题的准确答案:要为上传的文件指定新名称,请将其作为move_uploaded_file()函数的第二个参数.
由于您要保留扩展名,请先将其存储在变量中:
$ext = explode('.',$_FILES['uploaded']['name']);
$extension = $ext[1];
Run Code Online (Sandbox Code Playgroud)
您可以使用文件根名称生成新名称(此处附加时间戳):
$newname = $ext[0].'_'.time();
Run Code Online (Sandbox Code Playgroud)
假设您上传了一个文件,并且您的表单输入变量名称为"myfile.png",它将变为"myfile_2343544.png";
现在,将本地路径与目标目录,$ newname var和文件扩展名相结合,以设置函数的第二个参数:
$full_local_path = 'path/to/your/filefolder/'.$newname.'.'.$extension ;
move_uploaded_file($_FILES['uploaded']['tmp_name'], $full_local_path);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35996 次 |
最近记录: |