Postingan lainnya
Masalah di bagian mencegah nama kembar di php
selamat pagi. saya mau nanya, saya sedang mengikuti tutorial php intermediate di bagian mencegah nama kembar. dan saya menemui masalah seperti ini,
<?php
if ( isset($_POST['submit']) ) {
// print_r($_FILES);
$nama = $_FILES['gambar']['name'];
$error = $_FILES['gambar']['error'];
$size = $_FILES['gambar']['size'];
$asal = $_FILES['gambar']['tmp_name'];
$format = $_FILES['gambar']['type'];
$namafile = 'upload/' . $nama;
$time = time();
// cara lain dalam format/type file
// $format2 = pathinfo($nama, PATHINFO_EXTENSION);
if ( $error == 0) {
if ( $size < 1000000 ) {
// cara lain dalam format/type file
// if ( $format2 == 'png' || $format2 == 'jpg' || $format2 == 'jpeg' ) {
if ( $format == 'image/png' || $format == 'image/jpg' || $format == 'image/jpeg' ) {
if ( file_exists($namafile) ) {
$namafile = str_replace('.png' || '.jpg' || '.jpeg', "", $namafile);
$namafile = $namafile . '_' . $time;
}
//mengupload
move_uploaded_file($asal . $namafile);
echo "berhasil upload.";
} else {
echo "formatnya tidak sesuai ketentuan.";
}
} else {
echo "ukurannya kegedean.";
}
} else {
echo "ada error.";
}
}
?>
jika ada berbagai jenis tipe untuk string replacenya, adakah cara yg lebih simpel atau mudah?
dan untuk proses selanjutnya jika ada berbagai jenis tipe filenya, lalu bagaimana caranya agar formatnya tetap sama?
mohon bantuannya.
4 Jawaban:
Jawaban Terpilih
Untuk mendapat Filename, kamu bisa gunakan pathinfo() :
Cara 1:
$name = 'file.jpg';
echo $file_name = pathinfo($name, PATHINFO_FILENAME); // file
echo $extension = pathinfo($name, PATHINFO_EXTENSION); // jpg
Hasil Cara 1:
file
jpg
Cara 2:
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
?>
Hasil Cara 2:
/www/htdocs/inc
lib.inc.php
php
lib.inc
**Cara 1 dan Cara 2 Sama saja, hanya berbeda implementasi saja, bisa disesuaikan kebutuhannya
Source: 1. https://stackoverflow.com/questions/27497304/getting-file-name-without-extension 2. http://php.net/manual/en/function.pathinfo.php
terima kasih atas jawabannya @abyanjksatu.
dari cara yg pertama saya jadi ingat kembali itu cara yg di kasih tau oleh mas hilman di video tutorialnya, meskipun pada akhirnya mas hilman menggunakan fungsi original di videonya. maka dari itu saya aga lupa dengan cara lainnya.
dan ini hasil perbaikan kode saya,
if ( isset($_POST['submit']) ) {
// print_r($_FILES);
$nama = $_FILES['gambar']['name'];
$error = $_FILES['gambar']['error'];
$size = $_FILES['gambar']['size'];
$asal = $_FILES['gambar']['tmp_name'];
$format2 = pathinfo($nama, PATHINFO_EXTENSION);
$namafile = 'upload/' . $nama;
$time = time();
// cara lain dalam format/type file
// $format = $_FILES['gambar']['type'];
if ( $error == 0) {
if ( $size < 1000000 ) {
// cara lain dalam format/type file
// if ( $format == 'image/png' || $format == 'image/jpg' || $format == 'image/jpeg' ) {
if ( $format2 == 'png' || $format2 == 'jpg' || $format2 == 'jpeg' ) {
if ( file_exists($namafile) ) {
$namafile = str_replace('.' . $format2, "", $namafile);
$namafile = $namafile . '_' . $time . '.' . $format2;
}
//mengupload
move_uploaded_file($asal, $namafile);
echo "berhasil upload.";
} else {
echo "formatnya tidak sesuai ketentuan.";
}
} else {
echo "ukurannya kegedean.";
}
} else {
echo "ada error.";
}
}
?>
untuk membuat tambahan nama unik, adakah yang bisa digunakan selain menggunakan fungsi time()?
"untuk membuat tambahan nama unik, adakah yang bisa digunakan selain menggunakan fungsi time()? "
Jawab:
Kamu bisa gunakan uniqid() function
<?php
echo uniqid();
?>
source: https://stackoverflow.com/questions/4371941/best-method-to-generate-unique-filenames-when-uploading-files-php tutorial: https://www.w3schools.com/php/func_misc_uniqid.asp
sekali lagi terima kasih bantuannya @abyanjksatu.