2009-10-05 21 views
10

cuando maneje un HTTP cargar el archivo se cargará en¿Forma PHP de encontrar la ruta temporal del servidor web?

$_FILES['field_name']['tmp_name'] 

Sé que podría extraer la trayectoria temporal de allí. Pero esperaba tal vez un parámetro de $_SERVER que tenía la ruta temporal (no hay ninguno) u otra forma elegante de conocerlo.

¿Hay alguno?

Respuesta

24
ini_get('upload_tmp_dir'); 
+0

Eso es cierto también. +1 –

+0

Esta es probablemente la respuesta más correcta, ya que el directorio de carga de temperatura puede ser diferente del directorio de temperatura del sistema. – notJim

+0

Como está en la distribución XAMPP. –

19

La función sys_get_temp_dir() devuelve la ruta del directorio utilizado por PHP para almacenar archivos temporales.

+0

Disponible desde PHP 5.2.1. – Gumbo

+2

Devuelve C: \ Windows \ TEMP \. Mi fragmento devuelve D:/WAMP/tmp. –

+2

WAMP está preconfigurado para usar el dir de tmp de la distribución. –

3

yo personalmente utilizar la sugerencia de la Sbm007:

ini_get ('upload_tmp_dir');

Como esto tiene en cuenta Apache por VirtualHost ajustes como las restricciones upload_tmp_dir y open_basedir, donde como:

sys_get_temp_dir()

sólo volvería directorio temporal específica del sistema operativo, y si dentro de un alojada múltiples el entorno podría darle un directorio en el que no puede escribir.

8

Usando XAMPP en mi computadora privada, el método ini_get funcionó muy bien, ya que php.ini especifica el valor upload_tmp_dir. Sin embargo, después de subir al servidor de mi empleador, este código no funcionó porque el valor aparentemente no existía en el archivo php.ini de su servidor. Por lo tanto, he usado directorio temporal del sistema como predeterminado, y ahora el script funciona en mi equipo y en su servidor:

$ini_val = ini_get('upload_tmp_dir'); 
$upload_tmp_dir = $ini_val ? $ini_val : sys_get_temp_dir(); 
+6

... o '$ upload_tmp_dir = ini_get ('upload_tmp_dir')?: Sys_get_temp_dir()' en PHP 5.3 o posterior. – cdmckay

Cuestiones relacionadas