Programación Web y Scripting > PHP

 Hacer Un Host De Imagenes

<< < (2/2)

Krosty:
Buenisimo y alo probe y va de diez, graicas ;)
Una pregunta esto que hace:
--- Código: Text ---rtrim(dirname(&#036;_SERVER['PHP_SELF']), '/&#092;&#092;');  Y como se podria hacer para que si existe una imagen con el nombre a subir, le cambie el nombre?
Es decir si subo jaja.jpg y subo otro jaja.jpg, que le ponga jaja1.jpg ?
Salu2
gracias

-DriverOp-:
Krosty:

--- Citar ---Una pregunta esto que hace:
--- Código: Text ---rtrim(dirname(&#036;_SERVER['PHP_SELF']), '/&#092;&#092;');  
--- Fin de la cita ---
$_SERVER['PHP_SELF'] devuelve la ruta local más el nombre del script que se está ejecutando actualmente relativo al home virtual en el servidor, por ejemplo si la URL del script es: http://www.example.com/dir1/dir2/script.php $_SERVER['PHP_SELF'] contiene dir1/dir1/script.php

dirname() extrae el path de la cadena pasada como parámetro, como esa cadena contiene $_SERVER['PHP_SELF'] entonces devuelve dir1/dir1

rtrim() borra caracteres por la derecha (es decir por el final de la cadena), en este caso elimina la barra final de lo que devuelve dirname(), esto lo hice para prevenir que apareza una doble barra cuando el script está en el home, en ese caso dirname devuelve "/" lo que causaría una doble barra en la URL después.

Para ver si un archivo ya existe podrías hacer algo así:

--- Código: Text --- if (is_file(&#34;jaja.jpg&#34;)) { echo &#34;El archivo ya existe&#34;; }else { echo &#34;El archivo no existe&#34;; }  
Para asignar un nuevo nombre de archivo a un nuevo archivo cuyo nombre ya existe podrías hacer algo como esto:

--- Código: Text --- function getFileExtension(&#036;str) {         &#036;i = strrpos(&#036;str,&#34;.&#34;);        if (!&#036;i) { return &#34;&#34;; }         &#036;l = strlen(&#036;str) - &#036;i;        &#036;ext = substr(&#036;str,&#036;i+1,&#036;l);         return &#036;ext;} // getFileExtension function getFileName(&#036;str) {        &#036;i = strrpos(&#036;str,&#34;.&#34;);        if (!&#036;i) { return &#34;&#34;; }        return substr(&#036;str,0,&#036;i);} // getfilename &#036;archivo = &#036;_FILES ['foto']['name']; // agregado según tu código.if (is_file(&#036;archivo)) {  &#036;a = 0;  do {    &#036;a++;    &#036;archivo = GetFileName(&#036;archivo).&#036;a.&#34;.&#34;.GetFileExtension(&#036;archivo);  } while (is_file(&#036;archivo));}echo &#036;archivo;  En $archivo tendrás el nuevo nombre.

Seguramente alguien más tiene una solución mejor.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa