将$ _Files ['userfile'] ['name']转换为变量

时间:2014-04-01 22:35:43

标签: php post

我正在使用代码来上传文件,如下所示:

$uploaddir = "./images/";
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.\n";
} else {
   echo "Upload failed";
}

代码可以上传图像,但我希望能够在文字后将文件名发布到SQL数据库。

我需要获取上传的文件名并将其设为名为$filename的变量,以便我可以使用:

$image = $_POST[$filename];

我已尝试使用此功能将其变为变量

$filename = $_FILES['userfile']['name'];

我得到的是$_POST上未定义索引:image.jpg的错误,我不确定为什么。它列出了错误中的图像文件名,所以为什么不能上传它。

1 个答案:

答案 0 :(得分:1)

如果您要发布名为" image.jpg"的输入,则我只能访问$_POST[$filename],我猜你不是。

您已经从$ _FILES数组中获取了文件名,为什么不再使用它呢?

$image = basename($_FILES['userfile']['name']);

...或者使用您已经拥有的$filename变量(无法查看示例中定义的位置,但它显然包含" image.jpg&# 34)

注意: name数组的$_FILES['input_name']部分包含上传文件的原始文件名。这就是你所需要的一切。