1

私は PHP が初めてで、フォームにファイルをアップロードするための小さなコードを作成しました。

コードは正常に動作しますが、 foreach ループを使用して同じことを達成できるかどうか疑問に思っていたので、より多くのファイルを処理でき、それぞれに個別の行を書く必要はありません。

ここの誰かがこれを手伝ってくれて、正しく書く方法を教えてくれませんか。

私のコード(作業中):

session_start();

$varUID = $_POST['UID'];
$varSender = $_SESSION['email'];

$varFile1 = $_FILES["file1"]["name"];
$varExt1 = pathinfo($varFile1, PATHINFO_EXTENSION);
$varFile2 = $_FILES["file2"]["name"];
$varExt2 = pathinfo($varFile2, PATHINFO_EXTENSION);
$varFile3 = $_FILES["file3"]["name"];
$varExt3 = pathinfo($varFile3, PATHINFO_EXTENSION);

move_uploaded_file($_FILES["file1"]["tmp_name"], "uploads/" . $varUID . "_1" . "." . $varExt1);
move_uploaded_file($_FILES["file2"]["tmp_name"], "uploads/" . $varUID . "_2" . "." . $varExt2);
move_uploaded_file($_FILES["file3"]["tmp_name"], "uploads/" . $varUID . "_3" . "." . $varExt3);

echo $varUID;

これについて助けてくれてありがとう、ティム

4

2 に答える 2

5
foreach ($_FILES as $key => $file) {
    $name = $file["name"];
    $ext = pathinfo($name, PATHINFO_EXTENSION);
    preg_match('/(\d+)$/', $key, $match); // get 2 out of "file2"
    $nr = $match[1];
    move_uploaded_file($file["tmp_name"], "uploads/" . $varUID . "_" . $nr . "." . $ext);
}
于 2013-10-09T11:19:20.717 に答える