无法通过PHP上传文件

5 php ajax

我正在尝试上传文件,然后通过更改名称来保存它.但是,它不起作用,并给我这个错误.

警告:move_uploaded_file(uploads/564b68ef0e2f8 | 3d-pc-nature-wallpaper.jpg):无法打开流:第157行的C:\ wamp\www\f\ajax.php中的参数无效

警告:move_uploaded_file():无法在C:\ wamp\www\f\ajax.php中将'C:\ wamp\tmp\phpA364.tmp'移动到'uploads/564b68ef0e2f8 | 3d-pc-nature-wallpaper.jpg'在第157行

我已经验证,文件正确地转到$ _FILES.这是我的代码.

$rand_img = uniqid();
$file_upload_folder = "uploads";
$finalImgLink = $file_upload_folder . '/' . $rand_img . '|' . $_FILES['file']['name'];
//move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/$rand_img|' . $_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $finalImgLink))
{
    echo "ok";
}
else
{
    echo "not ok";
}
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

Tri*_*tan 4

文件名中不能使用竖线 (|)。这是您遇到错误的最可能原因。尝试将其更改为下划线或破折号。

$rand_img = uniqid();
$file_upload_folder = "uploads";
$finalImgLink = $file_upload_folder . '/' . $rand_img . '_' . $_FILES['file']['name'];
//move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/$rand_img|' . $_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $finalImgLink))
{
    echo "ok";
}
else
{
    echo "not ok";
}
Run Code Online (Sandbox Code Playgroud)

在 Windows 上,文件名不能包含以下任何字符:

\/:*?” < > |