Tôi không đồng ý với câu trả lời của @Alexander.plutov. Bạn không phải lưu một tệp, sau đó sao chép nó, sau đó hủy liên kết nó.You don't have to save a file, then copy it, then unlink it.
Vì bạn chỉ định tên tệp đích trong mã của bạn:
move_uploaded_file[$filename, "../img/user_uploaded/" . $newfilename];
echo "Stored in: " . "../img/user_uploaded/" .$newfilename;
Tất cả những gì bạn có là chỉ định một tên khác thay vì $newfilename
. Nếu mục tiêu của bạn là thay thế tiện ích mở rộng .TMP bằng một thứ khác, bạn có thể xóa bốn ký tự cuối cùng [luôn luôn là .tmp, được đặt bởi PHP], sau đó thêm tiện ích mở rộng của riêng bạn.remove the last four characters [which are always .tmp, set by PHP], then add your own extension.
Nếu bạn chỉ muốn giữ phần mở rộng do người dùng đưa ra, hãy sử dụng:
$friendlyName = $_FILES["file"]["name"];
$extension = substr[$friendlyName, strrpos[$friendlyName, '.'] + 1];
Tất nhiên, bạn phải nhận thức được rủi ro khi sử dụng một cái gì đó được đăng bởi người dùng. Điều gì sẽ xảy ra nếu không có tiện ích mở rộng nào cả, hoặc nếu nó quá dài, hoặc nếu nó không khớp với loại tệp thực [chết chóc-virus.exe được đổi tên thành hình ảnh đẹp.jpg]?
Thay đổi tên hình ảnh trong khi tải lên hình ảnh
Trong PHP, chúng tôi sử dụng tải lên tệp để tải lên tệp văn bản, tệp hình ảnh và bất kỳ tài liệu nào cho ứng dụng web của chúng tôi. Một thời gian chúng tôi tải lên hình ảnh khác nhau nhưng tên hình ảnh giống nhau tại thời điểm đó hình ảnh cũ được thay thế bằng hình ảnh được tải lên cuối cùng.
Some time we upload upload different image but the image name same at that time the old image replaced by last uploaded image.
Chủ yếu trong tất cả các trang web mạng xã hội, tất cả người dùng tải lên hình ảnh hồ sơ của họ trong tài khoản, điều gì xảy ra nếu một số người dùng tải lên cùng tên hình ảnh cho hình ảnh hồ sơ. Hình ảnh cuối cùng được hiển thị trong cả hình ảnh hồ sơ người dùng, hình ảnh hồ sơ người dùng trước đó được thay thế bằng ảnh hồ sơ người dùng mới.
Để ngăn chặn tình huống trên & nbsp; chúng ta cần đổi tên tên ảnh trong khi tải lên, hãy sử dụng một số kết hợp tên hình ảnh duy nhất của Userid duy nhất với văn bản..ETC ..
Đổi tên tên hình ảnh ví dụ PHP
PHP Reanme image example
Select image :
Enter image name :
Đầu ra ví dụ PHP là:
Your New file name
choose your file
Xuất ra tệp của bạn được tải lên với tên PhptPoint Tên tệp mới của bạn Chọn tệp của bạn Your file is uploaded with phptpoint name your New file name choose your file
Trong ví dụ trên, lần đầu tiên nhập tên của bạn bất cứ điều gì bạn muốn tên hình ảnh mới của bạn, thứ hai bạn phải lấy phần mở rộng của hình ảnh bằng $ _FILES ['file'] ['type'] Nó trả về mảng. Tại [0] chỉ mục, nó hiển thị hình ảnh và tại [1] chỉ mục, nó hiển thị tiện ích mở rộng tệp của bạn như jpg, jpeg, png, v.v. Bây giờ bạn phải đặt tên mới này như $ user. "." của hàm di chuyển_uploaded_file [].
❮ Tham chiếu hệ thống tập tin PHP
Thí dụ
Đổi tên một thư mục + một tệp:
Định nghĩa và cách sử dụng
Hàm đổi tên [] đổi tên một tệp hoặc thư mục.
Cú pháp
Đổi tên [cũ, mới, bối cảnh]
Giá trị tham số
cũ | Yêu cầu. Chỉ định tệp hoặc thư mục được đổi tên |
Mới | Yêu cầu. Chỉ định tên mới cho tệp hoặc thư mục |
định nghĩa bài văn | Không bắt buộc. Chỉ định bối cảnh của xử lý tập tin. Bối cảnh là một tập hợp các tùy chọn có thể sửa đổi hành vi của luồng |
Chi tiết kỹ thuật
Đúng về thành công, sai về thất bại |
4.0+ |
Php 5.3.1: Cho phép đổi tên các tệp trên các ổ đĩa trong Windows.php 5.0: Có thể được sử dụng với một số trình bao bọc URL. PHP 5.0: Can be used with some URL wrappers. |
❮ Tham chiếu hệ thống tập tin PHP