我一直试图用move_uploaded_file
上传文件一段时间了,出于某种原因发生了一些奇怪的事情。这是我现在正在使用的代码:
$rand = rand();
$_SESSION['rand'] = $rand;
$uploaddir = "csv/";
$uploadfile = $uploaddir . $_SESSION['rand'] . basename($_FILES['file']['name']);
$_SESSION['filenaam'] = $_SESSION['rand'].$_FILES['file']['name'];
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
{
echo "File is valid, and was successfully uploaded.\n";
}
else
{
echo "Upload failed";
}
当我尝试上传此$uploadfile
时,它很顺利,我可以在csv地图中找到它,但有2个问题。第一个是即使文件已上传,我总是得到else respond(echo "Upload failed outlook";)
。第二个是我试图在$_SESSION['filenaam']
中保存的文件的名称是不同的,由于某种原因,rand函数被重用而不是第一个的结果。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
这样做可能会更好,而不是随机使用uniqid();相反,每次调用rand()函数时,都会生成不同的值。
答案 1 :(得分:0)
要解决第二个问题,你可以这样做:
小于PHP5.2:
if(!isset($_SESSION['rand'])) {
rand();
}
超过PHP5.3
$_SESSION['rand'] = ($_SESSION['rand']) ?: rand() ;