作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将文件和用户数据一起保存到数据库的表中。现在,一切工作正常,除了我找不到一种有效的方法来将随机名称附加到上传的文件名。其中文件被重命名以供查看和数据库上。这是我目前正在做的事情。
<?php
$target = "files/";
$target = $target . basename( $_FILES['file']['name']);
$title=$_POST['title'];
$description=$_POST['description'];
$username=$_POST['username'];
$image=$_POST['image'];
$timestamp=$_POST['timestamp'];
$file=($_FILES['file']['name']);
$from=$_POST['from'];
$button_id=$_POST['button_id'];
mysql_connect("", "", "") or die(mysql_error()) ;
mysql_select_db("") or die(mysql_error()) ;
mysql_query("INSERT INTO `client_files` VALUES ('$title', '$description','$username', '$image', '$timestamp', '$file', '$from', '$button_id')") ;
if(move_uploaded_file($_FILES['file']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
echo "Sorry, there was a problem uploading your file.";
}
?>
向上传的文件附加随机名称的最佳方法是什么?
更新:
我尝试了以下方法,我认为这将是解决方案......
$file = md5(uniqid(rand(), true)) . '.' . substr(strrchr(($_FILES['file']['name']), '.'), 1);
我能够将文件名重命名为数据库上的随机字符串,但一旦传递到文件夹就无法更新它。我在想,如果我先将它传递给目标,它会更改服务器上的数据库和文件。虽然我尝试了以下方法,
$target = "files/"; $target = tempnam($target, "");
但是文件已损坏并且无法读取..
最佳答案
您可以将唯一的随机数附加到现有名称。尝试下面的代码
$target = "files/";
$random = rand(0,9999);
$filename = basename( $_FILES['file']['name']);
$target = $target.$random.$filename ;
关于php - 将随机名称附加到文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24750900/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!