如何在php中更改上传目录?

时间:2013-08-22 09:29:24

标签: php

我已经从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;

3 个答案:

答案 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目录