4
我已經寫了一個PHP文件,該文件會保存在服務器和部分代碼的JPEG文件被列爲如下:PHP編寫的二進制文件
//create folder if folder not exist
if (!is_dir($save_path)){
$old = umask(0);
$flag = @mkdir($save_path,0777);
umask($old);
if(isset($flag)){
$string = 'Folder Create Success!'."\n";
}else{
$string= 'Folder Create Fail!'."\n";
}
echo $string;
}else{
echo "Folder exist!!!!";
}
//write the content to the server
$base=$_REQUEST['image'];
$binary=base64_decode($base);
header('Content-Type: image/jpg; charset=utf-8');
if(!$file = fopen($path, 'wb')){
echo 'Image upload Fail!'."\n";
return;
}
else
{
fwrite($file, $binary);
fclose($file);
}
問題是,當我運行的代碼,如果文件夾不存在,它僅創建文件夾,但內容無法保存在文件夾中。錯誤信息是:
[Thu Jul 05 16:59:06 2012] [error] [client 10.95.61.220] PHP Warning:fopen(/ mnt/csis/upload/newphoto/others/12346_test/12346_test_2012-07 -05_others_abc.jpg):未能打開流:權限被拒絕在/var/www/html/upload_image.php在線57
但是,如果我再次運行代碼,由於該文件夾是在過去創建的,好好工作。內容可以保存在文件夾中......
任何我錯了?我試圖在網上找到答案,但仍無法解決問題。
任何人都可以幫助,非常感謝!
遺憾地告訴你,結局都是一樣的...... – user1411475 2012-07-05 09:38:40
你確定嗎?我看到你同時擁有'$ path'和'$ basepath' - 你可以'回顯'它們並顯示我嗎? – alfasin 2012-07-05 09:41:05
如果它仍然不起作用,請在打開文件之前嘗試使用'chdir($ path);'。 – alfasin 2012-07-05 09:47:28