Witam mam podobny problem próbuje sprawić żeby pliki wysyłane przez kamerę internetową miały w nazwie datę i godzinę zamiast numeru seryjnego kamery.Ponieważ jeden obraz nadpisuje się na drugim. Pomoże ktoś ???
function hex2bin($s,$l) {
for ($i = 0; $i < $l*2; $i += 2)
{
if($i < strlen($s))
$bin .= chr(hexdec(substr($s,$i,2)));
else
$bin .= chr(0);
}
return $bin;
}
function checkParity($s) {
for ($i = 0; $i < strlen($s); $i++)
{
$c=hexdec(bin2hex(substr($s,$i,1)));
$p=0;
for($j=0; $j<8; $j++)
{
if(($c & (1<<$j)) != 0)
$p++;
}
if(($p & 0x01) == 0)
$c += 0x80;
$bin .= chr($c);
}
return $bin;
}
if (isset($_POST[‘submit’]))
{ // Obsługa formularza.
if (isset($_POST[‘gps’]))
$gps=addslashes($_POST[‘gps’]);
else
$gps="";
$http_answer=chr(1).chr(2).chr(4).chr(0); // marker końca danych
$err="";
$pfile_name=$_FILES[‘pfile’][‘name’];
$pfile_size=$_FILES[‘pfile’][‘size’];
$pfile_tmp_name=$_FILES[‘pfile’][‘tmp_name’];
if($pfile_name!=“none”)
{
if($pfile_size==0)
$err= chr(1).chr(0).chr(5).chr(0).chr(1);// 'Problem: wysłany plik ma długość zero bajtów
';
if(!is_uploaded_file($pfile_tmp_name))
$err= chr(1).chr(0).chr(5).chr(0).chr(2);// ‘Problem: możliwy atak podczas wysyłania pliku’;
}
else
$err= chr(1).chr(0).chr(5).chr(0).chr(3); // ‘Problem: brak pliku z danymi’
if((strlen($err)==0) && $pfile_name!=“none” )
{
$wp=fopen($pfile_tmp_name, “r”);
$pic_data=fread($wp, $pfile_size); // wpisanie do $pic_data przeslanego pliku z danymi obrazka
fclose ($wp);
$pic_key=“123456789”; //Klucz do odszyfrowywania obrazu
if($pic_key)
{
if(strlen($pic_key)>8)
$DesKey=substr($pic_key,1,8);
else if(strlen($pic_key)==8)
$DesKey=$pic_key;
else
$DesKey=“012345678”;
$DesKey=checkParity($DesKey);
}
if($COMpos = strpos($pic_data, chr(0xff).chr(0xfe),0))
{
if($pic_key && ($xml!=2))
{
if(strlen($pic_key)>8)
$DesKey=substr($pic_key,1,8);
else if(strlen($pic_key)==8)
$DesKey=$pic_key;
else
$DesKey=“012345678”;
$DesKey=checkParity($DesKey);
$COMpos +=2;
$COMlen = hexdec(bin2hex (substr($pic_data,$COMpos,1)))*256 + hexdec(bin2hex(substr($pic_data,$COMpos+1,1)));
$COMpos +=2;
$JPEG_ID=substr($pic_data,strpos($pic_data,"ID: ",$COMpos)+4,12);
$JPEG_KEY=substr($pic_data,strpos($pic_data,"KEY: ",$COMpos)+5,32);
$SOSpos = strpos($pic_data, chr(0xff).chr(0xda),0);
$SOSpos +=2;
$SOSlen = hexdec(bin2hex (substr($pic_data,$SOSpos,1)))*256 + hexdec(bin2hex(substr($pic_data,$SOSpos+1,1)));
$SOSpos += $SOSlen;
$JPEGlen = strlen($pic_data)-$SOSpos-2;
$JPEGdata = substr($pic_data,$SOSpos,$JPEGlen);
$RC4Key = mcrypt_decrypt (MCRYPT_DES, $DesKey, hex2bin($JPEG_KEY,16), ‘cbc’, hex2bin($JPEG_ID,8) );
for($i=0; $i<0x364; $i++)
$tmp_data .=chr(1);
$tmp_data .= $JPEGdata;
$tmp_decrypt = mcrypt_decrypt (MCRYPT_ARCFOUR, $RC4Key, $tmp_data, ‘stream’ );
$JPEGdata = substr($tmp_decrypt,0x364,$JPEGlen);
$JPEG=substr($pic_data,0,$SOSpos).$JPEGdata.substr($pic_data,(strlen($pic_data)-2),2);
$pic_data=$JPEG;
}
}
$path_parts = pathinfo($pfile_name);
$pfile_name = strtoupper($path_parts[‘filename’]);
$wp = fopen ($pfile_name.".jpg", “w”);
flock($wp, 2);
fwrite($wp, $pic_data);
flock($wp, 3);
fclose ($wp);
}
}
else
{
$err= chr(1).chr(0).chr(5).chr(0).chr(4); // ‘Problem: brak danych formularza’
$http_answer = $err.$http_answer;
}
echo $http_answer;
?>
Posty: 1
Dołączył(a): 13.10.2011 (Cz) 19:17