Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加到文件名的额外扩展名(PhP)_Php - Fatal编程技术网

添加到文件名的额外扩展名(PhP)

添加到文件名的额外扩展名(PhP),php,Php,因此,经过几周的工作,我几乎完善了我的图像托管服务,但这是我唯一需要解决的问题 下面的字符串只是获取文件名,但我发现删除任意一端的[$I]或删除字符串的某些部分,文件名的处理方式将会改变。 让我们假设我们的文件名为taco.png $file_name[$i]=($_FILES['file']['name'][$i]); 这是目前最有效的方法。这导致了taco.png.png,但我不想要第二个.png,所以我尝试了这个 $file_name=($_FILES['file']['name'][$

因此,经过几周的工作,我几乎完善了我的图像托管服务,但这是我唯一需要解决的问题

下面的字符串只是获取文件名,但我发现删除任意一端的[$I]或删除字符串的某些部分,文件名的处理方式将会改变。 让我们假设我们的文件名为taco.png

$file_name[$i]=($_FILES['file']['name'][$i]);
这是目前最有效的方法。这导致了taco.png.png,但我不想要第二个.png,所以我尝试了这个

$file_name=($_FILES['file']['name'][$i]);
删除第一个i后,我们得到t.png,它只保留第一个字母,但第二个.png不见了。。。耶

$file_name[$i]=($_FILES['file']['name']);
删除第二个[$i]将导致Array.png

任何其他操作都会导致语法错误


有什么想法吗?

我想你有以下Html:

<input type="file" name="file[]" />
<input type="file" name="file[]" />
<input type="file" name="file[]" />

您可以选择:

<input type="file" name="foo" />
<input type="file" name="bar" />
<input type="file" name="baz" />

如果你
var\u dump($\u FILES)
你就会明白为什么。这是因为你的
$\u FILES
是一个多维数组,这意味着它看起来是这样的:
array([0]=>array(),[1]=>array()……等等)
@Darren好的,那么我该如何改变它呢?我是一个较新的脚本编写者,这个脚本最初来自一个简单的图像托管脚本,我从没有使用过$\u FILES变量。您需要循环,因为我假设这是在
for
/
foreach
/
while
循环中?并实际为每个值创建名称。好吧,事实证明,[$i]在两端都是毫无意义的,我删除了它们,脚本也没有改变。只有一个文件上载字段。然后创建
$\u FILES['file']['name'][0]
,但在这种情况下它不应该是数组。添加[0]只会再次导致t.png,不幸的是,这仍然不是解决方案。那么什么是
print\r($\u POST)
?确保它不在代码中:D(这是一种调试方法)
<input type="file" name="foo" />
<input type="file" name="bar" />
<input type="file" name="baz" />
$fooFileName = $_FILES['foo']['name'];
$barFileName = $_FILES['bar']['name'];
$bazFileName = $_FILES['baz']['name'];