上传具有唯一名称的文件-what';我的代码错了


Uploading file with a unique name - what's wrong with my code?

我正在尝试使用以下代码将文件上传到服务器:

$data = substr($_POST['imageData'], strpos($_POST['imageData'], ",") + 1);
$decodedData = base64_decode($data);
$name = uniqid(rand(), true) . '.jpg';
$fp = fopen('"imgdownload/'.$name.'"', 'wb');
fwrite($fp, $decodedData);
fclose($fp);

该文件不是以这种方式上传的,只有当我输入一个默认名称(如)时才有效

$fp = fopen("imgdownload/myfile", 'wb');

我得到的回复是:

警告:fopen("imgdownload/189244042e0263cf14.94958715.jpg;):无法打开流:C:''examplep''htdocs''OrlenOla''api''process.php中的参数无效,位于6

警告:fwrite()要求参数1为resource,布尔值在C:''examplep''htdocs''OrlenOla''api''process.php7行
中给定
警告:fclose()要求参数1为资源,布尔值在C:''examplep''htdocs''OrlenOla''api''process.php8行
中给定

我正在一遍又一遍地查看代码,我看不出可能有什么问题。有人帮忙吗?

如错误所示:

警告:fopen("imgdownload/189244042e0263cf14.94958715.jpg"):失败要打开流:中的参数无效C: 第6行上的''axamp''htdocs''OrlenOla''api''process.php

文件名中有"嵌套"引号。

$fp = fopen('"imgdownload/' . $name . '"', 'wb');
//           ^                         ^
//         nested quotes should not be here

试试这个:

$fp = fopen('imgdownload/' . $name, 'wb');