2012-04-24 33 views
10

Tôi có đoạn code sau

$image_path = $_FILES["p_image"]["name"].time(); 

nó tên file image02.jpg1335279888

nhưng tôi muốn nó được đặt tên image02_1335279888.jpg

Làm thế nào tôi có thể đạt được điều đó?

Trả lời

26
$path_parts = pathinfo($_FILES["p_image"]["name"]); 
$image_path = $path_parts['filename'].'_'.time().'.'.$path_parts['extension'] 
+7

@ user521180 Nếu bạn đang làm điều này để 2 file có cùng tên không ghi đè lên nhau, sau đó bạn có thể xem xét sử dụng microtime (true) ; thay vì thời gian(). Nếu 2 hình ảnh tải lên có cùng tên trong cùng một thứ hai sẽ ghi đè lên. Hãy xem xét một người dùng duy nhất tải lên 2 hình ảnh cả hai gọi là "image.jpg". – HappyTimeGopher

+1

Bạn cũng sẽ cần phải thêm dấu gạch chân trong đó quá, để có được quy ước đặt tên chính xác đề cập trong bài gốc:.. $ IMAGE_PATH = $ path_parts [ 'filename'] "_" microtime (true).. '. $ path_parts [' extension ']; – Squig

+0

nhờ @Squig đã chỉ ra rằng – Sethunath

1

Bạn có thể kiểm tra điều này một:

$file = $_FILES["p_image"]["name"]; 
$array = explode('.', $file); 
$fileName=$array[0]; 
$fileExt=$array[1]; 
$newfile=$fileName."_".time().".".$fileExt; 
+0

nên đó không phải là '$ newFile = $ filename. '_'. thời gian() . '.' . $ fileExt; ' – RiggsFolly

Các vấn đề liên quan