如何从输入类型打印选定的照片名称

时间:2017-07-01 09:04:37

标签: php file-upload

任何人都可以告诉我,我如何打印照片名称?照片将从输入type=file中选择。

这是我到目前为止所尝试的内容:

$photo = $_FILES['photo']['tmp_name'];
//$photo_name = basename($photo);
echo $photo;

此代码不显示实际文件名。它打印如下(php3515.tmp);

3 个答案:

答案 0 :(得分:4)

打印文件name而不是tmpname

试试这个:

echo $_FILES['photo']['name'];

答案 1 :(得分:2)

在您的情况下,

php3515.tmp是由PHP生成的临时文件。您必须使用move_uploaded_file()函数将此文件移动到所需位置,该函数将$_FILES['photo']['tmp_name']作为第一个参数,将路径和新文件名作为第二个参数。

以下是PHP manual

的示例
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

在此示例中注意$_FILES['userfile']['name'],其中包含原始文件名。

答案 2 :(得分:2)

您需要知道$_FILES['userfile']中的you have 5 parameters

  • 名称 - 上传文件的原始名称
  • tmp_name - 系统在磁盘上实际写入的系统名称
  • 尺寸 - 文件大小
  • 错误 - 错误代码 - 0表示没问题
  • 类型 - 已保存文件的类型

如果您想要原始名称,要显示,请使用:

$_FILES['userfile']['name']

您还有一个功能move_uploaded_file(),可让您安全地将文件从临时位置移动到您自己的位置。另一种方式,在PHP过程结束后,您上传的文件将被删除。

$path = __DIR__  . '/upload/' . basename($_FILES['userfile']['name']);
$result = move_uploaded_file($_FILES['userfile']['tmp_name'], $path);

$result告诉您,系统是否正确地将文件保存在给定位置。