Pregunta

En PHP, quiero cambiar el nombre (mover/copiar) un archivo en un servidor de archivos de Windows: " myServer carpeter1 carpeter2 myfile.pdf" a " myServer carpeter1 carpeter2 old myfile.pdf" "

(todas las carpetas ya existen y el archivo de destino no existe)

Intenté esto:

copy("\\\\myserver\\folder1\\folder2\\myfile.pdf", "\\\\myserver\\folder1\\folder2\\OLD\\myfile.pdf");

y

copy("//myserver/folder1/folder2/myfile.pdf", "//myserver/folder1/folder2/OLD/myfile.pdf");

Recibo:

[function.copy]: failed to open stream: Permission denied 

La computadora en la que estoy/el usuario inició sesión, ya que tiene permisos para cambiar el nombre/mover/eliminar/copiar a esa compartir/carpeta.

¿Supongo que necesito dar permisos de PHP de alguna manera o ejecutar PHP como mi usuario? ¿O?

¿Fue útil?

Solución

PHP se ejecutará como cualquier usuario que ejecute su servidor web. Debería otorgar permisos en esa carpeta a cualquier cuenta de usuario que sea.

Otros consejos

No use copia ... use Move_uploaded en su lugar

Este es un ejemplo que obtiene la imagen de un formulario:

$img = 'sample.jpg;
$path = '//nameofyourpcinyournetwork/sharedfolder/folderyoulike/';
$pathwithimg = $path.$img;
if (!is_dir($path)) {
  mkdir($path, 0644, TRUE); // TRUE for make it recursive
}
if (file_exists($pathwithimg)) {
 unlink($pathwithimg);
 move_uploaded_file($_FILES["file"]["tmp_name"], $pathwithimg);
 chmod($pathwithimg, 0644);
}

Cambie SAFE_MOD a OFF si lo tiene encendido

PD Sí, lo sé, esta publicación es hace 5 años ... pero nadie dijo una respuesta válida y otras personas (como yo) pueden encontrar esta pregunta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top