2012-04-24 3 views
10

tengo el siguiente código

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

nombra el archivo image02.jpg1335279888

pero yo quiero que sea nombrado image02_1335279888.jpg

¿Cómo puedo lograr eso?

Respuesta

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

@ user521180 Si usted está haciendo esto para 2 archivos con el mismo nombre no sobrescribir el uno al otro, entonces se puede considerar el uso de microtime (verdadero) ; en lugar del tiempo(). De lo contrario, se sobrescribirán 2 imágenes cargadas con el mismo nombre en el mismo segundo. Considere la posibilidad de que un solo usuario cargue 2 imágenes llamadas "image.jpg". – HappyTimeGopher

+1

También necesitará agregar el guión bajo allí para obtener la convención de nomenclatura exacta mencionada en su publicación original: $ image_path = $ path_parts ['filename']. "_". Microtime (true). '. '. $ path_parts [' extension ']; – Squig

+0

@Squig gracias por señalar que – Sethunath

1

Puede comprobar éste:

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

En caso de que no sea '$ newfile = $ filename. '_'. hora() . ''. . $ fileExt; ' – RiggsFolly

Cuestiones relacionadas