上传图片后如何获取图片名称

3
当我上传图片时:
 <h3 id="txt_i2">Img</h3><input type="file" accept="image/jpeg, image/jpg" name="picture" size="chars">

如何使用php获取上传的图片名称?我不是指“picture”。例如,如果图像被称为cow.jpg,则获取“cow”。

尝试通过“.”拆分生成的文件名,并仅获取列表中最后一项之前的值。 - Francis Fuerte
6个回答

6
Anton,您可以使用下面的代码来获取图像或任何没有扩展名的文件名。
$filename = pathinfo($_FILES['picture']['name'], PATHINFO_FILENAME);

你只需要输出 $filename; 我百分之百确定它会起作用。在你的情况下,你需要像这样更改代码 $filename = pathinfo($_FILES['picture']['name'], PATHINFO_FILENAME); - Ram Sharma
我试过了,实际上我必须将图片的名称放入数据库中,所以我有这个.... $filename = pathinfo($_FILES['picture']['name'], PATHINFO_FILENAME); $insert['img']=$filename; ...但它仍然不想放入(我正在使用Smarty)。 - Anton
是的,我告诉了你,它给了我一个字符串(0) "",我可以给你整个代码看看。 - Anton
Anton,请在这里展示你的HTML和PHP代码或者提出任何问题,这样我才能给你提供准确的代码。 - Ram Sharma
<h3 id="txt_i2">图片2:</h3><input type="file" accept="image/jpeg, image/jpg" name="picture" size="chars"> <input type="submit" class="classname" value="保存" name="submit"> 如果(isset($_POST['submit'])){ $filename = pathinfo($_FILES['file']['name']. PATHINFO_FILENAME); var_dump( $filename); $insert['img']=$filename; } - Anton
显示剩余6条评论

5

POST方法上传

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

客户端机器上文件的原始名称。

因此,使用上述代码,如果您想要实际文件名 cow.jpg,它存储在

$_FILES['picture']['name'];

如果你想要不带扩展名的文件名,你可以通过使用pathinfo()函数并设置PATHINFO_FILENAME标志来从提供的文件名中推断出来,这将返回cow。如果图像的名称为cow.moo.jpg,则将返回cow.moo
$picture_filename = pathinfo($_FILES['picture']['name'], PATHINFO_FILENAME);

2
使用这个

标签


<html>
 <body>
  <form action="upload_file.php" method="post"
    enctype="multipart/form-data">
   <label for="file">Filename:</label>
     <input type="file" name="file" id="file"><br>
     <input type="submit" name="submit" value="Submit">
  </form>
 </body>
</html> 

上传脚本
<?php
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
 ?> 

这将提供文件名、文件类型和文件大小。

1

请检查pathinfo,那里有一些示例,所以你只需要在$_FILES变量上使用pathinfo


你需要在这个和你的其他答案中添加注释。 - Anthony

1
在HTML中,您应该向表单元素添加一个属性:enctype="multipart/form-data"。

0
$filename = explode(".", $_FILES['picture']['name']); //split by '.'
array_pop($filename); //remove the last segment
$filename = implode(".", $filename); //concat it by '.'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接