html side
<form method="POST" action="" enctype="multipart/form-data">
<input type="file" id="site_header_picture" name="param_file[site_header_picture]" />
<input type="file" id="site_logo" name="param_file[site_logo]" />
<input type="submit" value="Save change" />
</form>
php side
if(!empty($_FILE)) {
foreach($_FILE['param_file'] as $key => $value)
{
//do stuff
}
}
似乎!empty返回 false ,而$_FILE['param_file']
始终为空。
名称会暂时生成,将来可能会有更多文件输入。
任何人都可以帮助我吗?谢谢
答案 0 :(得分:0)
试试这个:
if(!empty($_FILE)) {
foreach($_FILE['param_file'] as $key => $value)
{
//do stuff
}
}
实际上$_FILE
是一个数组,您需要使用empty()
检查它是否为空。
答案 1 :(得分:0)
也许,当提交带括号的名称时,您不理解PHP如何构造您的$_FILES
数组。出于某种原因,PHP以不明显的方式做到了。
使用var_dump($_FILES)
。以下是您发布的表单的示例输出。
array (size=1)
'param_file' =>
array (size=5)
'name' =>
array (size=2)
'site_header_picture' => string 'tests.png' (length=9)
'site_logo' => string 'Untitled.png' (length=12)
'type' =>
array (size=2)
'site_header_picture' => string 'image/png' (length=9)
'site_logo' => string 'image/png' (length=9)
'tmp_name' =>
array (size=2)
'site_header_picture' => string 'C:\Windows\Temp\php2432.tmp' (length=27)
'site_logo' => string 'C:\Windows\Temp\php2443.tmp' (length=27)
'error' =>
array (size=2)
'site_header_picture' => int 0
'site_logo' => int 0
'size' =>
array (size=2)
'site_header_picture' => int 219168
'site_logo' => int 178288
有些人编写辅助函数来重新排序$_FILES
数组。尽管如此,强烈建议您使用现代PHP框架,它们具有处理此问题的内置类和方法。
如果$_FILES
为空,请检查文件是否真正传输到服务器(使用 Microsoft网络监视器或 Chrome开发者工具)。此外,Web服务器可能会禁止您的文件;因此,首先尝试发布微小图像,并学习如何在Web服务器上配置文件上载。
答案 2 :(得分:0)
啊哈,没有人注意到我写了文件而不是文件....该死的,我应该停止复制并过去。
感谢所有人。
if(!empty($_FILES['param_file'])) {
$uploaddir = '../uploads/parameters/';
$all_file_array = $_FILES['param_file'];
foreach($all_file_array['name'] as $key => $value)
{
$param_name = $key;
$param_value = $value;
//do stuff
}
}
答案 3 :(得分:-1)
$filename=$_FILES['param_file[site_logo]']['name'];
$filename1=$_FILES['param_file[site_header_picture]['name'];
if(empty($filename) || empty($filename1))
{
echo "Please Select Your files first";
exit();
}
else{
foreach($_FILES['param_file']['tmp_name'] as $key =>$tmp_name)
{
if(!(is_uploaded_file($_FILES['param_file']['tmp_name'][$key])))
{
die("unable to upload file");
exit();
}
if(move_uploaded_file($_FILES['param_file']['tmp_name'][$key],$path))
{
//$path=path where you wanna upload your files
//your data base query goes here..
}
}