从HTTP_RAW_POST_DATA保存图像在MAMP中不起作用

时间:2012-09-01 19:42:24

标签: http-post mamp fwrite

我正在使用以下内容从帖子数据上传图片。它使用php版本在我的服务器上运行:5.2.16

当我尝试使用MAMp和PHP V5.2.17在本地服务器上运行完全相同的脚本时 该文件未创建。

if (isset($HTTP_RAW_POST_DATA))
{

// Get the data
$imageData=$HTTP_RAW_POST_DATA;
// Remove the headers (data:,) part.  
// A real application should use them according to needs such as to check image type
$filteredData=substr($imageData, strpos($imageData, ",")+1);
// Need to decode before saving since the data we received is already base64 encoded
$unencodedData=base64_decode($filteredData);

echo "unencodedData: ".$unencodedData;
$key = microtime();
$key = md5($key);
// Save file. 
$fp = fopen( '../../../uploadedImages/original/' . $key . '.jpg', 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
}

如果我在firebug中查看它,看起来确实存在帖子数据。任何想法为什么这不适用于mamp?

1 个答案:

答案 0 :(得分:1)

有些事情要尝试:

  1. 检查以确保在MAMP上运行脚本时获取原始数据

  2. 检查它尝试写入的目录的权限,并确保您具有写入权限,并且apache具有写入权限。

  3. 我在MAMP上运行一些php模块时出现问题,所以我转而使用我使用MacPorts安装的版本。它让我更多地控制了我想安装的额外扩展,我得到了最新版本的apache,php和php扩展。