ファイルをアップロードし、タイムスタンプで名前を変更してDBに登録するファイルアップローダーをjQueryで作成しようとしています。基本的に、フォームを含むファイルをサーバーに送信し、そこで 2 番目のスクリプトがファイルの名前を変更し、ファイルを正しいディレクトリに移動します。これは問題なく動作します。問題は、この DB エントリを作成するテーブル名も送信したいということです。
したがって、index.php には次の形式が含まれます。
<div id="uploaderMain">
<p>Upload Your Files</p>
<form method="post" enctype="multipart/form-data" action="./upload.php">
<input type="file" name="images" id="images" />
<input type="hidden" name="List" id="List" value="<?php echo $DBTable; ?>" />
<button type="submit" id="btn">Upload Files!</button>
</form>
<div id="response"></div>
<ul id="image-list">
</ul>
</div>
jQuery コードは次のようになります。
$.ajax({
url: "./uploader/upload.php",
type: "POST",
data: formdata,
processData: false,
contentType: false,
success: function (res) {
document.getElementById("response").innerHTML = res;
}
});
upload.php は次のようになります。
<?php
//include db configuration file
include_once('../../db.php');
$List = $_POST['List'];
// get the time stamp for the uploaded file
date_default_timezone_set('EST');
$date = new DateTime();
$date = $date->getTimestamp();
// echo $date;
foreach ($_FILES["images"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$name = $_FILES["images"]["name"][$key];
// store the file name and the file ending in 2 variables
$fileEnding = substr($name, -4,4);
$fileName = substr($name, 0, (strlen($name)-4));
$uploadName = $fileName."_".$date.$fileEnding;
move_uploaded_file( $_FILES["images"]["tmp_name"][$key], "./uploads/" . $uploadName);
}
}
その後、DBに書き込みたい。問題は、$_POST['LIST'] ステートメントが DBTable-name を提供しないことです。
誰でも私にヒントを与えることができますか?
乾杯ダン