perl - apache一个用于上传文件的perl/cgi脚本

  显示原文与译文双语对照的内容
93 3

我尝试运行这里脚本:http://www.seaglass.com/file-upload-pl.html 插件在Apache中。运行 win7 x64后,我修改了脚本,因此:#! C:Perl64binperl.exe -wT 不只是 #!/usr/bin/perl 运行顺利,而且任何上传尝试都会失败Can't open/tmp/outfile for writing - No such file or directory错误:我创建了一个 /tmp/outfile 目录和一个 /tmp/outfile.txt 文件。我对Perl很陌生,因此不知道什么是错误的。请告知。

时间:原作者:0个回答

108 5

/tmp/outfile 是输出文件名,而不是目录名。创建 C:tmp,,但如果你确实创建了该目录,则删除 C:tmpoutfile 。

原作者:
78 1

使用正斜杠而不是反斜线分隔Unix路径组件。在路径中不能显式看到驱动器。Perl可以在 Windows 上处理 / 作为路径分隔符,将 C: 视为 文件系统 root 。( 谢谢,jimtut ) 因此Unix路径 /tmp/outfile 转换为 Windows 上的C:tmpoutfile它是( 可能不存在) 文件的路径,上传的内容应该存储在这里。

如果你想要真正确定代码的可移植性,那么使用 File::Spec 模块来构建路径。它允许避免显式写入路径分隔符( 。/ 上的,Windows 上的) 。

使用窗口样式路径时,请记住将 写入双引号字符串时将它的加倍。( "C:tmpoutfile" ) 转义问题与 shell 。PHP和许多其他语言相同。

原作者:
...