Pregunta

Estoy escribiendo una clase que acepta una matriz Product_ID y $ _files como constructor. La clase guarda estas variables y las usa para crear un nuevo directorio nombrado por Product_ID e intenta copiar el archivo TEMP a mi directorio especificado.

Por alguna razón, mi clase ni siquiera está llegando a crear un directorio (que debería suceder en el constructor)

Aquí hay un enlace a mi código: http://pastie.org/955454

¿Fue útil?

Solución

Esto podría ser un problema de permisos. ¿Dices que es un servidor basado en Windows? ¿Tienes esta máquina? ¿Está utilizando un servidor dedicado? ¿Está utilizando un servidor compartido?

La respuesta a esta pregunta realmente depende de la información dada por aquellos. Si es dueño de la máquina, simplemente puede ir al directorio en su disco duro que desea que se escriba y abrir sus permisos para escribir. Si está dedicado, probablemente haya un medio razonablemente fácil para acceder a la estructura del archivo y cambiar su configuración de permiso allí. Si está compartido, lo mismo.

Otros consejos

Parece que está utilizando una ruta absoluta en este directorio $ this-> en el constructor, en otras palabras, se tratará como c: images upload (o cualquier unidad desde la que esté ejecutando el sitio). Si quiere decir que esto sea una ruta de tipo URI, entonces deberá agregar su raíz web a la ruta:

$this->directory = $_SERVER['DOCUMENT_ROOT'] . '/images/upload/' . $this->prod_id

También es posible que desee verificar lo que regresa Mkdir (). Es falso en el fracaso, después de lo cual podría verificar error_get_last() (Php> = 5.2) para ver exactamente por qué está fallando.

} else {
     $ret = mkdir($this->directory, 0755, true);
     if ($ret === FALSE) {
        die("mkdir() failed with: " . error_get_last());
     }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top