用PHP编写二进制文件

用PHP编写二进制文件,php,file-io,io,binaryfiles,Php,File Io,Io,Binaryfiles,我已经编写了一个PHP文件,它将在服务器中保存一个JPEG文件,部分代码如下所示: //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"; }

我已经编写了一个PHP文件,它将在服务器中保存一个JPEG文件,部分代码如下所示:

    //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警告:fopen(/mnt/csis/upload/newphoto/others/12346_test/12346_test_2012-07-05_others_abc.jpg):无法打开流:第57行/var/www/html/upload_image.PHP中的权限被拒绝

但是,如果我再次运行代码,因为文件夹是在过去创建的,所以它可以正常工作。内容可以保存在文件夹中

我有什么错吗?我试图在网上找到答案,但还是解决不了问题


任何人都可以帮忙,非常感谢

我会尝试更改文件夹的创建以使用:


你确定?我看到你有
$path
$basepath
-你能
回送他们给我看吗?如果仍然不起作用,试着使用
chdir($path)
打开文件之前。实际上,$path是要保存的文件的路径,$savepath是路径+文件名。另一方面,我在打开文件之前尝试了chdir($path),但问题仍然存在……但您正在尝试:
fopen($path,'wb')
,这意味着,根据您最后的评论,打开目录……最终我解决了问题,在创建新文件夹时等待10秒保存内容。。。。。
$flag = @mkdir($save_path . "/" . $file,0777,true);