establecer permisos de archivo en el encabezado antes de la descarga forzada en php?

StackOverflow https://stackoverflow.com/questions/1638828

  •  08-07-2019
  •  | 
  •  

Pregunta

Estoy generando un archivo para presentar al usuario para su descarga, pero el servidor no me deja abrirlo, porque necesita tener permisos de 777 antes de poder hacerlo.

Aquí está mi código

$fh = fopen("$name", 'w') or die("can't open file");
fwrite($fh, $data);
fclose($fh);

header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$name").";");
header("Content-Disposition: attachment; filename=$name");
header("Content-Type: application/octet-stream; "); 
header("Content-Transfer-Encoding: binary");

readfile($name);

¿alguna forma de establecer los permisos de esto antes de abrirlo, o cómo lo haría? El archivo aún no se ha creado, por lo que podría ser una especie de bucle sin fin. ¿Debo hacer el archivo, luego abrirlo o qué?

¿Fue útil?

Solución

Si no necesita el archivo temporal que está escribiendo, $ name, simplemente transmítalo sin crear un archivo.

En su lugar, solo puede generar todos sus encabezados y hacer eco de la salida.

Otros consejos

Si el nombre del archivo es fijo, entonces

  • crear un archivo vacío en el servidor
  • establece su permiso.
  • ábrelo desde php
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top