【问题标题】:Multiple input file in one form一种形式的多个输入文件
【发布时间】:2015-12-06 05:45:58
【问题描述】:

我有表格:

<form method="post" enctype="multipart/form-data" action="edit_kategori.php">
     <input type="file" name="icon-main" id="icon-main">
     <input type="file" name="icon-hover" id="icon-hover">
<form>

我想从两个输入文件上传两张图片,但只上传了我选择的最后一个文件。这是我的 php:

$dirMain = $_FILES['icon-main']['tmp_name'];
$dirHover = $_FILES['icon-hover']['tmp_name'];

//main icon
$tempMain = explode(".", $_FILES['icon-main']['name']);
$newMain = round(microtime(true)) . '.' . end($tempMain);

$iconMain = $folder . basename($newMain);   

//hover icon
$tempHover = explode(".", $_FILES['icon-hover']['name']);
$newHover = round(microtime(true)) . '.' . end($tempHover);

$iconHover = $folder . basename($newHover); 

if (!empty($dirMain)&&!empty($dirHover)) {
        $dir[] = $dirMain;
        $dir[] = $dirHover;

        $icon[] = $iconMain;
        $icon[] = $iconHover;

        for ($i=0; $i <= 1; $i++) { 
            move_uploaded_file($dir[$i] , $icon[$i]);
        }

    }

是因为“tmp_name”只能存储一个文件吗?感谢您的帮助:)

【问题讨论】:

  • vardump 每个部分可能很有用,这样您就可以知道哪个部分工作不正常
  • 可以尝试获取move_uploaded_file的返回值形式来判断动作是否成功

标签: php forms file-upload upload


【解决方案1】:

只是小错误,循环遍历&lt;= 1

for ($i=0; $i <= 1; $i++) { 
            move_uploaded_file($dir[$i] , $icon[$i]);
        }

我猜存储 $_FILES['yourvar']['tmp_name'] 会导致问题。这两种方法我都试过了,它可能对你有用:

方法一:(工作)

move_uploaded_file($_FILES['icon-main']['tmp_name'], $_FILES['icon-main']['name']);
move_uploaded_file($_FILES['icon-hover']['tmp_name'], $_FILES['icon-hover']['name']);

方法二:(无效)

$d = $_FILES['icon-main']['tmp_name'];
$k = $_FILES['icon-hover']['tmp_name'];
move_uploaded_file($d, $_FILES['icon-main']['name']);
move_uploaded_file($k, $_FILES['icon-hover']['name']);

【讨论】:

  • 感谢回复,我改了
【解决方案2】:

我只是找到了方法,我使用 if 手动移动文件,而不是循环...

$target = "../category/";
$dir = $target . basename( $_FILES['icon-main']['name']);

if(move_uploaded_file($_FILES['icon-main']['tmp_name'], $dir)) {
    echo "<br>";
    echo $dir;
}   else {
    echo "Fail";
};


$dir = $target . basename( $_FILES['icon-hover']['name']);

if(move_uploaded_file($_FILES['icon-hover']['tmp_name'], $dir)) {

    echo "<br>";
    echo $dir;
} else {
    echo "Fail";
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2020-02-25
    • 2012-01-05
    相关资源
    最近更新 更多