O имеет HTML5 форму, которая позволяет загружать несколько изображений.Я хочу, чтобы сохранить изображения в папке загрузки и сохранить имена файлов в базе данных.Каждый столбец в базе данных может иметь больше изображений.Поэтому я создал новую таблицу allegato
, в которой я сохраняю имя изображения и идентификатор проблемы, которую он представляет.У меня также есть таблица segnalazione
, где у меня есть отчет.Таким образом, несколько изображений относятся к одному отчету.
Я могу загрузить несколько изображений на сервер, но я не знаю, как сохранить для каждого изображения его имя, чтобы связать в таблице БД их сигнализацию.
В segnalazione.php
у меня есть эта функция для загрузки отчета.В конце файла я могу связать отчет с таблицей «вложений», но я не знаю, как добавить ссылку для каждого файла, загруженного одновременно.
function create()
{
$query=" INSERT INTO ". $this->table_name ." SET
nome=:nome, descrizione=:descrizione, contatto=:contatto, tipo_segnalazione=:tipo_seg, indirizzo=:via1, ip=:ip, tracking=:track";
$stmt = $this->conn->prepare($query);
// bind values
$stmt->bindParam(":nome", $this->nome);
$stmt->bindParam(":descrizione", $this->descrizione);
$stmt->bindParam(":contatto", $this->contatto);
$stmt->bindParam(":tipo_seg", $this->tipo_seg);
$stmt->bindparam(":via1",$this->via1);
$stmt->bindparam(":ip",$this->ip);
$stmt->bindparam(":track",$this->tracking);
if($stmt->execute()){
$stmt1 = $this->conn->prepare("SELECT id FROM coratocivile where tracking=:track");
$stmt1->bindparam(":track",$this->tracking);
$stmt1->execute();
$id = $stmt1->fetch();
$id1= $id['id'];
$stmt2 = $this->conn->prepare("insert into allegato set id_segnalazione='$id1'");
$stmt2->execute();
}else{
return false;
}
return true;
}
в индексе.php, куда я загружаю изображение, имеет:
if($_POST){
$segnalazione->descrizione=$_POST['descrizione'];
$segnalazione->contatto=$_POST['contatto'];
$segnalazione->nome=$_POST['nome'];
$segnalazione->tipo_seg=$_POST['tipseg'];
$segnalazione->ip=$ip = $_SERVER['REMOTE_ADDR'];
$segnalazione->via1=$_POST['via'];
$segnalazione->tracking=time();
$file_dir = "uploads";
function compress_image($source_url, $destination_url, $quality) {
if($source_url==NULL)
{
echo "<div class='alert alert-danger'> Caricamento allegato fallito. Assicurati di aver allegato una foto o un video!</div>";
return null;
}
else {
$info = getimagesize($source_url);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source_url);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source_url);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source_url);
imagejpeg($image, $destination_url, $quality);
return $destination_url;
}
}
if (isset($_POST["singlebutton"])) {
for ($x = 0; $x < count($_FILES['file']['name']); $x++) {
$file_name = time() . $_FILES['file']['name'][$x];
$file_tmp = $_FILES['file']['tmp_name'][$x];
/* location file save */
$file_target = $file_dir . DIRECTORY_SEPARATOR . $file_name;
try {
if( $filename = compress_image($file_tmp, $file_target, 30) && $segnalazione->create()){
echo "<div class='alert alert-success'> Segnalazione inviata. </div>";
}
else echo "<div class='alert alert-danger'> Segnalazione non inviata. Assicurati di aver compilato tutti i campi corretttamente. </div>";
} catch (Exception $e) {
echo "<div class='alert alert-danger'> Caricamento allegato fallito </div>";
}
}
}
}
?>