只是想在事件中上传的任何文件中添加一个唯一的随机ID。
有没有办法将这个唯一生成的id添加到mysql中的列。
我在move_upload_file行上收到错误
<?php
if($_SERVER['REQUEST_METHOD']=='POST')
{
$file_results = "";
if (!$_FILES["file"]["name"])
{
$file_result = "No File Uploaded or Invalid File
Error Code: " . $_FILES["file"]["error"] . "<br>";
echo $file_result;
} else {
$file_results .=
"Upload: " . $_FILES["file"] ["name"] . "<br>" .
"Type: " . $_FILES["file"] ["type"] . "<br>" .
"Size: " . ($_FILES["file"] ["size"] / 1024) . "<br>" .
"Temp file: " .$_FILES["file"] ["tmp_name"] . "<br>";
move_uploaded_file($_FILES['file']['tmp_name'],
'uploads/'.uniquid(rand()).$_FILES['file']['name']);
echo 'Thank Your For Submitting Your Item! It Will Be Availabel For You To Style With Soon!';
};
答案 0 :(得分:1)
对于fileszstem中的唯一文件名,我们有一个名为tempnam
的方法,您可以阅读它here,您应该使用uniqid
来获取唯一的文件名。
使用uniqid
并不能保证您将获得真正随机的字符串,即使文档说明了这一点。
从手册:
此函数不会创建随机字符串或不可预测字符串。这个 函数不得用于安全目的。用一个 加密安全的随机函数/发生器和 加密安全散列函数以创建不可预测的安全性 的ID。
答案 1 :(得分:0)
根据Mjh的回答,我认为tempnam将是正确答案。我一直用:
md5( uniqid() . $fileName . rand(0,100);
到目前为止,我没有失败。 Md5为统一名称。