Tôi đang cố gắng tải lên hình ảnh, nhưng tôi muốn rằng nếu hình ảnh đã tồn tại thì tôi cần đổi tên tệp. Sự cố trong mã của tôi phát sinh khi tôi cố gắng tải lên hình ảnh sau khi đổi tên tệp. một phần của mã mà tôi đang gặp phải vấn đề là. sau khi đổi tên nếu tôi vang tên của tập tin nó được thay đổi, nhưng sau đó tôi không thể tải hình ảnh lên máy chủđổi tên hình ảnh trong khi tải nó lên máy chủ
if(file_exists($target_file))
{
$new_filename = uniqid() . '.' . $fileData['imageFileType'];
rename($target_file, $new_filename);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
$name=basename($_FILES["fileToUpload"]["name"]);
echo $name;
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
else
{
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
$name=basename($_FILES["fileToUpload"]["name"]);
echo $name;
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
toàn bộ mã mà tôi có để tải lên hình ảnh là
<?php
require 'connection.php';
$target_dir = "catpic/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"]))
{
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false)
{
//echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
}
else
{
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000)
{
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif")
{
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0)
{
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
}
else
{
if(file_exists($target_file))
{
$new_filename = uniqid() . '.' . $fileData['imageFileType'];
rename($target_file, $new_filename);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
$name=basename($_FILES["fileToUpload"]["name"]);
echo $name;
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
else
{
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
$name=basename($_FILES["fileToUpload"]["name"]);
echo $name;
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
}
?>
bạn có thể giải thích thêm một chút về lỗi không? – Zgr3doo
@ Zgr3doo lỗi là hình ảnh của tôi không được tải lên sau phần đổi tên. nếu tôi tải lên hình ảnh lần đầu tiên thì tốt nhưng nếu tôi tải lên cùng một hình ảnh vào lần tiếp theo thì nó không được tải lên mặc dù tên của nó bị thay đổi – roy
Bạn thiếu đường dẫn trong $ new_filename của mình - cũng có thể là ý tưởng hay khi sử dụng thường được sử dụng trong các tệp tải lên tệp và chỉ định băm ngẫu nhiên làm tên cho tệp được tải lên và lưu băm này vào cơ sở dữ liệu cùng với id của tệp. – Zgr3doo