1

我已经从 iPhone 应用程序上传了一个图像数据。

我解码了图像数据并尝试将图像保存在文件中。

我总是收到一条错误消息

文件 href='function.file-put-contents'>function.file-put-contents]:无法打开流:权限被拒绝。

define('UPLOAD_DIR', '/Applications/XAMPP/xamppfiles/htdocs/mc311');
$data = base64_decode($Image);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
$path = $file;
4

3 回答 3

2

尝试此添加/mc311并添加 chmod 以上传文件:

define('UPLOAD_DIR', '/Applications/XAMPP/xamppfiles/htdocs/mc311/');
chmod(UPLOAD_DIR, 777); 
$data = base64_decode($Image);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
$path = $file;
于 2013-08-22T09:33:01.220 回答
0

“权限被拒绝”消息应该给你一个线索!检查定义的 UPLOAD_DIR 是否可由 Web 服务器写入。通常 chown 为 www-data:www-data 或您的网络服务器用户名应该没问题,但您可能也需要调整权限。从 chmod 777 开始,然后看看是否能解决问题。找到问题后,您应该使用更保守的权限保护目录。

于 2013-08-22T09:35:05.853 回答
-1

/UPLOAD_DIR. 尝试var_dump你的变量。$file在这种情况下会给你类似的东西:/Applications/XAMPP/xamppfiles/htdocs/mc3114b3403665fea6.png
然后,您尝试上传到htdocs您无权写入的目录。

只需更改此行:

define('UPLOAD_DIR', '/Applications/XAMPP/xamppfiles/htdocs/mc311');

经过 :

define('UPLOAD_DIR', '/Applications/XAMPP/xamppfiles/htdocs/mc311/');

还要确保mc311目录具有良好的权限。755就足够了:

chmod(UPLOAD_DIR, 755);

最终,如果这不起作用,如果您在 OSX 下,请在终端中尝试:

chmod -R 0775 XAMPP/ 

Applications目录

于 2013-08-22T09:38:09.963 回答