Puedes crear una carpeta llamada "temporal" que si posea los permisos 777 que necesitas, y así podrás guardar en ella el fichero de forma temporal.
Para hacer eso puedes copiar el fichero original dentro de la carpeta "temporal" con la función
copy().
Por último decirte que aunque la carpeta raiz no tenga permisos 777 si los puede tener un fichero que esté dentro de la carpeta raíz, o sea, da permisos 777 solo a tu fichero.
Felices fiestas,
Synkronice