Burada iş parçacığı sayısını denedim, ancak şu ana kadar bana yardımcı olmuyor ya da burada bir şey özledim.Tek bir formda üç giriş dosyaları alanı ve veritabanına kaydetme
Yani üç giriş alanıyla bir formum var. Biliyorum bir alanda multiple
kullanabiliyorum ama buna ihtiyacım var. Ben ekle hit
<form class="form-horizontal" name="form-horizontal" action="" method="post" role="form" enctype="multipart/form-data" >
<div class="form-group">
<label class="control-label col-sm-2" for="upload_one">Upload_one: </label>
<div class="col-sm-10">
<input type="file" class="form-control" name="file[]" id="upload_one">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="upload_two">Upload_two:</label>
<div class="col-sm-10">
<input type="file" class="form-control" name="file[]" id="upload_two">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="upload_three">Upload_three: </label>
<div class="col-sm-10">
<input type="file" class="form-control" name="file[]" id="upload_three" multiple>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-4">
<input type="submit" name="add" value="Add New Lesson" class="btn btn-primary btn-block">
</div>
</div>
</form>
Ve PHP parçası
if (isset($_POST["add"])) {
$pdo = Database::connect();
$msg = "";
$permitted = array('application/vnd.ms-excel', 'application/pdf', 'application/msword', 'image/gif', 'image/jpeg', 'image/jpg', 'image/png', 'image/bmp');
if (count($_FILES["file"]) > 0) {
$folderName = "uploads/";
$sql = "INSERT INTO upload (upload_one, upload_two, upload_three, upload_size, upload_type)
VALUES (:upload_one, :upload_two, :upload_three, :upload_size, :upload_type)";
$stmt = $pdo->prepare($sql);
foreach (array_keys($_FILES) as $file) {
for ($i = 0; $i < count($_FILES[$file]["name"]); $i++) {
if ($_FILES[$file]["name"][$i] <> "") {
if ($permitted) {
$fileSize = $_FILES[$file]["size"][$i];
$fileType = $_FILES[$file]["type"][$i];
$fileName = $_FILES[$file]["name"][$i];
$tmpName = $_FILES[$file]["tmp_name"][$i];
$ext = substr(strrchr($fileName, "."), 1);
$_FILES[$file]["name"][$i] = rand(10000, 990000) . '-' .$fileName;
$filepath = $folderName . $_FILES[$file]["name"][$i];
if (!move_uploaded_file($tmpName, $filepath)) {
$emsg .= "Error while uploading file - <strong>" . $_FILES[$file]["name"][$i] . "</strong>. Please try again. <br>";
} else {
$smsg .= "The file <strong>" . $_FILES[$file]["name"][$i] . "</strong> is added successfully. <br>";
try {
$stmt->bindValue(":upload_one", $_FILES[$file]["name"][$i], PDO::PARAM_STR);
$stmt->bindValue(":upload_two", $_FILES[$file]["name"][$i], PDO::PARAM_STR);
$stmt->bindValue(":upload_three", $_FILES[$file]["name"][$i], PDO::PARAM_STR);
$stmt->bindValue(":upload_size", $fileSize, PDO::PARAM_STR);
$stmt->bindValue(":upload_type", $fileType, PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->rowCount();
if ($result > 0) {
// file uplaoded successfully.
} else {
// failed to insert into database.
}
} catch (Exception $ex) {
$emsg .= "<strong>" . $ex->getMessage() . "</strong>. <br>";
}
}
} else {
$emsg .= "This file <strong>" . $_FILES[$file]["name"][$i] . "</strong> isn't permitted. <br>";
}
}
}
$msg .= (strlen($smsg) > 0) ? successMessage($smsg) : "";
$msg .= (strlen($emsg) > 0) ? errorMessage($emsg) : "";
} }
else {
echo '';
}
: Burada basit (burada yazabilmek için kaynak daha kompakt hale getirmek için bu alanda bazı silinmiş) sürüm
HTML parçasıdır Düğme, her giriş alanını bir satırda kaydeder ve bu girişteki dosya üç defadır. Örneğin:
`input file_1` have doc1.docx
`input file_2` have doc2.docx
`input file_3` have doc3.docx
Bu veritabanında bu üretecek: Her bir dosya sadece onun sütununda olmak yerine her dosyanın her giriş dosyası için 3 kez kaydedilir nasıl görebilirsiniz
..
Mantığınızı yapılandırmanın yolu, bunun gerçekleştiği anlamına gelir. Döngü Dosyası 1, tüm 3 alandaki aynı ada sahip satır ekleyin. File 2 Repeat, File 3 Repeat, End loop – scottevans93
Buna yaklaşmak için 2 yöntem vardır, ya 3 dosyanın tümü aynı satırda kaydedilir veya her dosyanın kendi satırı vardır. Kullanım durumunuza hangisi daha uygun olurdu? – scottevans93
Aynı satırda kaydetmek istiyorum. Sadece her dosya kendi sütununda olacak .. Resimde olduğu gibi 'upload_1' dosya1,' upload_2' dosya_2 tutmak için .. – Select