我已经从iPhone应用程序上传了一个图像数据。
我解码了图像数据并尝试将图像保存在文件中。
我总是收到错误消息
文件 HREF = 'function.file-放-内容' >] function.file-放-内容: 无法打开流:权限被拒绝。
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;
答案 0 :(得分: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;
答案 1 :(得分:0)
“拒绝许可”消息应该给你一个线索!检查Web服务器是否可以写入定义的UPLOAD_DIR。通常已经显示为www-data:www-data或您的网站服务器用户名应该没问题,但您也可能需要调整权限。用chmod 777开始自由,然后看看是否能解决这个问题。一旦跟踪了问题,就应该使用更保守的权限来保护目录。
答案 2 :(得分:-1)
/
结束时您遗漏了UPLOAD_DIR
。尝试var_dump
您的变量。在这种情况下,$file
会给您:/Applications/XAMPP/xamppfiles/htdocs/mc3114b3403665fea6.png
然后,您尝试上传到您无权写入的htdocs
目录。
只需更改此行:
define('UPLOAD_DIR', '/Applications/XAMPP/xamppfiles/htdocs/mc311');
by:
define('UPLOAD_DIR', '/Applications/XAMPP/xamppfiles/htdocs/mc311/');
还要确保mc311
目录具有良好的权限。 755
就足够了:
chmod(UPLOAD_DIR, 755);
最终,如果这不起作用,如果您在OSX下,请在终端中尝试:
chmod -R 0775 XAMPP/
来自Applications
目录