Php resim adı güncellemeyi engelliyor
Merhaba arkadaşlar. Şöyle bir sorunum var. İnternetteki sunucuda çalışırken, siteye bir resim ekliyorum. Resmi de internetten buldum, o yüzden şöyle bir ismi var, örnek olarak: "siteye-konulan-birinci-resim.jpg" gibi. Resmin adında araya tire işareti konulduğu için resmi güncelleyemedim. Belki de "openssl_encrypt" kullandığım için dosya adı problem çıkarttı. Şu şekildeki resimlere bir sıkıntı çıkartmıyor. Mesela: "birinciresim.jpg" gibi. Resme yeniden isim mi vermeliyim? Nasıl verilir? Sorun nereden kaynaklanıyordur acaba? Aşağıdaki hatayı veriyor.
Uncaught mysqli_sql_exception: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=' in
Sorun yaratan resimler çoğunlukla şu şekilde oluyor. Resim adındaki boşluklar "+" işaretine dönüşüyor büyük ihtimal. "+" işaretini nasıl kaldırabilirim kodlardan veya nasıl dönüştürebilirim?
birinci resim (1).jpg
Kodları en son şu şekilde düzenledim ama sorunu halledemedim.
<?php
if(isset($_FILES['dosya'])) {
$boyut = $_FILES['dosya']['size'];
if($boyut > (1024*1024*3)) {
echo 'Dosya 3MB den büyük olamaz.';
} else {
$tip = $_FILES['dosya']['type'];
$isim = $_FILES['dosya']['name'];
$newfilename = round(microtime(true)) . $isim;
$search = array(" ","-","+");
$replace = array("_","_","_");
$isimdegistir = str_replace($search, $replace, $newfilename);
$uzanti = explode('.', $isimdegistir);
$uzanti = $uzanti[count($uzanti)-1];
if($tip != 'image/jpeg' && $tip != 'image/png' && $tip != 'image/jpg') { ?>
<div id="uyaripenceresi"></div>
<?php
header("refresh:0; url=anasayfaresimekle.php");
} else {
$dosya = $_FILES['dosya']['tmp_name'];
copy($dosya, '../../images/anasayfaresim/' . $isimdegistir);
$query = "INSERT INTO anasayfaresim (anasayfaresim_resim) VALUES('$isimdegistir')";
}
}
if (mysqli_query($db, $query) === TRUE) {
echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
Kayıt Başarıyla Gerçekleştirildi</div>';
header("Refresh:1; url=anasayfaresimekle.php");
} else {
echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
Kayıt Başarısız. <br> Geldiğiniz Sayfaya Yönlendiriliyorsunuz.</div>';
header("refresh:5; url=anasayfaresimekle.php");
}
}
?>