複数のファイルをフォルダにアップロードし、名前をデータベーステーブルに保存しようとしています。コードは次のとおりです。アップロードされたファイルの名前を取得する必要があります。私は私のコードはがらくたである知っている:(複数のファイルをアップロードするファイルの名前を取得
は、それらのファイルのアップロードをループする方法はありますし、まだファイル名を返す? 私はMySQLのテーブルにそれらを挿入することができるようにそれらの名前を必要としています。ため
感謝。あなたの援助
そして、PHPスクリプトは以下の通りです:
<?php
$target = "uploads/";
$target = $target . basename($_FILES['pic1']['name']);
$target = $target . basename($_FILES['pic2']['name']);
$target = $target . basename($_FILES['pic3']['name']);
$target = $target . basename($_FILES['pic4']['name']);
$pic1 =($_FILES['pic1']['name']);
$pic2 =($_FILES['pic2']['name']);
$pic3 =($_FILES['pic3']['name']);
$pic4 =($_FILES['pic4']['name']);
$con = mysql_connect("localhost", "root", "");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("people", $con);
$sql="INSERT INTO mtpupload (name, age, pic1, pic2, pic3, pic4)
VALUES('$_POST[name]','$_POST[age]','$pic1', '$pic2', '$pic3', '$pic4')";
//---------Here, I want to insert all the pictures----------//
if(move_uploaded_file($_FILES['pic1']['tmp_name'], $target)) {
//do nothing
}
if(move_uploaded_file($_FILES['pic2']['tmp_name'], $target)) {
//do nothingelse{
}if(move_uploaded_file($_FILES['pic3']['tmp_name'], $target)) {
//do nothing echo "Sorry, the image was not moved from temp folder.";
}if(move_uploaded_file($_FILES['pic4']['tmp_name'], $target)) {
//do nothing
echo "The was a problem uploading one of your images.";
}
//--------------Ends here---------------------//
if (!mysql_query($sql,$con)){
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
UPDATE:では、このコードは動作しているものの、フォルダ内に1つの画像しか保存していないことが判明しました。私は自分のmove_uploaded_fileが間違っていると思う。すべてのポインタ?
もう一度お手数をおかけします。
foreach ($_FILES as $file) {
echo $file['name']; // File name of file on user's computer
echo $file['tmp_name']; // Full path to the file on the server
}
http://nl3.php.net/manual/en/control-structures.foreach.php –
ループについてはどうですか? –
ところで、あなたのコードは、同じファイル名の2つのファイルがアップロードされている場合を考慮していません。後者は単に前者を上書きします。 –