【发布时间】:2016-08-11 18:06:40
【问题描述】:
出于某些原因,我希望将一些数据存储在可移动存储设备(即 USB 记忆棒)中。我安装了 WAMP 包,它有它的 .../www/ 文件夹,脚本可以在其中编辑文件等。我希望我的服务器能够从/向可移动存储中的另一个文件夹读取/写入文件.
我已经尝试过相对路径,并且可以看到file_put_contents 可以与www/ 之外的文件夹一起使用(可能是安全问题的原因..)。但是,我的可移动存储是 Windows 中的 E:\ 驱动器,所以要写在那里,我需要使用绝对路径。我试过像
file_put_contents("C:\existing\path\copied\from\explorer\new_file.txt","Stage 3, successfully written");
(首先在C:\ 上区分是否由于路径不起作用或禁止写入另一个存储而导致写入失败)并且失败。
那么,有可能吗?我应该使用什么来代替在 Windows 资源管理器中编写的路径?或者我应该使用另一个功能来实现这一点?或者使用 Apache config 给该路径一个别名?
关键是可移动存储应该可以在任何时候安全地移动,除了读/写的时刻。
PS 感谢 ÁlvaroGonzález,我发现我只是忘记在从资源管理器复制的绝对路径中转义 \ 符号,这就是写入它直接失败的原因。
【问题讨论】:
-
将别名添加到可移动驱动器很危险,好像它不存在 Apache 将无法启动
-
我在 Windows 上开发的每个 PHP 项目都使用绝对路径。他们完美地工作。事实上,它们比在 Windows 本身中工作得更好,因为我可以同时使用
/和 `\` 作为目录分隔符。您能否编辑问题并解释什么代码失败以及究竟是如何失败的?如果出现空白屏幕,请了解如何配置 PHP 以显示错误消息。 -
@ÁlvaroGonzález 谢谢,你是对的。我从资源管理器复制了路径而没有转义反斜杠。我认为,这是一个比使用符号链接更好的解决方案。你也可以回答这个问题,但我不确定是否可以重新接受,我至少可以为你的回答 +1。
-
我认为您可以按照建议编辑问题,以便问题清晰,或者用不同的术语重写以匹配接受的答案(例如“如何访问可移动设备”)。就目前而言,对于将来在这里谷歌寻求帮助的人来说,这是相当混乱的,因为它错误地表明 PHP 在驱动器号方面存在问题。
标签: php windows apache wampserver