用于上传文件的perl / cgi脚本

时间:2014-01-31 18:19:46

标签: perl apache cgi

我尝试过运行此脚本:http://www.seaglass.com/file-upload-pl.html。在Apache中。因为我正在运行win7 x64,所以我修改了脚本,所以它会:     #! C:\Perl64\bin\perl.exe -wT 而不仅仅是     #! /usr/bin/perl 该页面运行顺畅,但任何上传尝试都失败,并显示Can't open /tmp/outfile for writing - No such file or directory错误。 我创建了一个/tmp/outfile目录和一个/tmp/outfile.txt文件。 我是Perl的新手,因此不知道会出现什么问题。 请指教。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

Unix路径组件使用正斜杠分隔,而不是反斜杠,在路径中无法明确看到驱动器。 Perl可以在Windows上处理/作为路径分隔符,将C:视为文件系统根目录。 (谢谢,jimtut!)因此,Unix路径/tmp/outfile在Windows上转换为C:\tmp\outfile。它是一个(可能不存在的)文件的路径,其中应存储上载的内容。

如果您想确定代码的可移植性,请使用File :: Spec模块构建路径。它允许避免在Unix上显式编写路径分隔符(/,在Windows上编写\)。

使用Windows风格的路径时,请记住在将\写入双引号字符串时将其翻倍。 ("C:\\tmp\\outfile")转义问题与shell,PHP和许多其他语言相同......