0

我开发了一个图像上传应用程序,它使用 Flash 加载图像、调整图像大小并将图像数据的字节数组发送到 PHP 文件,该文件使用以下代码输出调整大小的文件 -

$default_path = '/uploads/temp/';
$filename = $_GET["filename"];
$destination = $default_path . $filename;
if(file_put_contents($destination, $GLOBALS["HTTP_RAW_POST_DATA"])) {
echo "The file " . basename( $_FILES[ 'Filedata' ][ 'name' ] ) . " has been uploaded;";
} else {
   echo "FILE UPLOAD FAILED";
}

当我从专用的 Windows 2003 Web 服务器运行它时,这非常有用,但现在我试图在 EC2 实例上运行它,它已经停止工作,我只收到“文件上传失败”消息。我可以从 Firefox 的 Firebug 插件中得知字节数组数据正在发布到 EC2 实例,但看不到还有什么会导致问题。

在 EC2 上,我正在运行一个安装了 PHP 和 Apache 的 CentOS 映像,我不知道从哪里开始解决这个问题!请告诉我我需要在这里寻找什么问题,有什么想法吗?

我检查了错误日志并收到以下错误消息 -

file_put_contents(/uploads/temp/abcdefg.JPG) [<a href='function.file-put-contents'>function.file-put-contents</a>]: failed to open stream: No such file or directory

这与指向错误目录有关吗?或有人在下面说明的权限?如何授予 PHP 写入该目录的权限,我应该使用绝对路径来引用我想要写入图像的目录吗?

干杯

4

2 回答 2

1

可能是权限问题,可能php用户没有权限写入指定目录。

您在 apache 错误日志中有任何消息吗?

于 2009-09-17T13:44:26.293 回答
0

我不知道您是否愿意与其他类一起工作,但有一些 PHP EC2 类可能会有所帮助 - http://sourceforge.net/projects/php-ec2/

于 2009-09-17T13:37:55.743 回答