Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php放置文件内容位置问题,重复文件_Php_String_Concatenation - Fatal编程技术网

php放置文件内容位置问题,重复文件

php放置文件内容位置问题,重复文件,php,string,concatenation,Php,String,Concatenation,下面的代码从服务器获取jpg图像。如果长度大于1,则假定已成功抓取该文件。然后,它继续为用户创建一个文件夹(如果它不在那里)。(本部分有效) 从那里,它应该将文件保存在/media/downloads/username位置 而是转到/media/downloads/ 我已经看过我的连接好几次了,但是我不知道问题在哪里。我看到文件名的前面附加了用户名,所以我想这只是一个连接错误 一旦这个问题得到解决,我就有了一个更大的问题——因为我使用的是rand,当我循环脚本时,它只会给我副本。我怎样才能防止重

下面的代码从服务器获取jpg图像。如果长度大于1,则假定已成功抓取该文件。然后,它继续为用户创建一个文件夹(如果它不在那里)。(本部分有效)

从那里,它应该将文件保存在
/media/downloads/username
位置

而是转到
/media/downloads/

我已经看过我的连接好几次了,但是我不知道问题在哪里。我看到文件名的前面附加了用户名,所以我想这只是一个连接错误

一旦这个问题得到解决,我就有了一个更大的问题——因为我使用的是rand,当我循环脚本时,它只会给我副本。我怎样才能防止重复的图像

if (strlen($data) > 1) {
     $prePath = 'media/download/from_'.$sender.'_to_'.$recipient.'_id_'.$snapid.'.jpg';
     if (!file_exists('media/download/'.$username)) {
    mkdir('media/download/'.$username, 0777, true);
 }
 if (file_exists($prePath)){
    $finalPath = 'media/download/'.$username.'/from_'.$sender.'_to_'.$recipient.'_id_'.$snapid.rand(0,100).'.jpg';
 }  
 else {
    $finalPath = 'media/download/'.$username.'/from_'.$sender.'_to_'.$recipient.'_id_'.$snapid.rand(0,100).'.jpg';
    }

//echo "<img src='$data'></img>";
file_put_contents($finalPath, $data);
echo  "<a href=".$finalPath."> <img src='".$finalPath."' alt='Smiley face' height='100' width='100'> </a>";

}
if(strlen($data)>1){
$prePath='media/download/from.'.$sender.''到'.'.$recipient.''id.'$snapid..jpg';
如果(!file_存在('media/download/'.$username)){
mkdir('media/download/'。$username,0777,true);
}
如果(文件_存在($prePath)){
$finalPath='media/download/'.$username./from.$sender.''.'到'.$recipient.'.''.id.'.$snapid.rand(0100)。'.jpg';
}  
否则{
$finalPath='media/download/'.$username./from.$sender.''.'到'.$recipient.'.''.id.'.$snapid.rand(0100)。'.jpg';
}
//回声“;
文件内容($finalPath,$data);
回声“;
}

是。这就是为什么$username会被添加到文件的开头。你应该使用日期或时间,而不是随机数,这样你就永远不会有重复的文件名。