2013-08-22 18 views
1

我上传了iPhone应用程序中的图像数据。如何在php中更改上传directroy?

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

我总是收到错误消息

文件 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; 
+2

你缺少一个:

chmod(UPLOAD_DIR, 755); 

最后,如果这没有工作,如果你是在OSX环境下,试试这个在终端'/ UPLOAD_DIR'末尾的'/' – Brewal

+0

@Brewal,会导致权限被拒绝错误吗? O.o我不这么认为。 –

+0

是的,详情请参阅我的回答。 – Brewal

回答

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; 
+0

应用程序/ XAMPP/xamppfiles/htdocs中/ mc311/5215dd480fcf9.png)[function.file-put-contents]:未能打开流:权限被拒绝....................... ...再次我得到这个错误 – Deepak

+0

@Bing你的'mc311'目录来自哪里? – Brewal

+0

我需要保存在/mc311文件夹中不在/ temp/.. – Deepak

0

“权限被拒绝”消息应该给你一个线索!检查定义的UPLOAD_DIR是否可由Web服务器写入。一般chown到万维网数据:万维网数据或您的网络服务器的用户名应该没问题,但您可能必须调整权限。用chmod 777自由开始,然后看看是否解决了这个问题。一旦你找到了问题,你应该用更加保守的权限来保护目录。

-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将是不够的:从Applications目录

chmod -R 0775 XAMPP/