העלאת קובץ שמע למערכת + בחירת שלוחה להלאה

AG הפקות
הודעות: 79
הצטרף: 19:36 11/03/2018

העלאת קובץ שמע למערכת + בחירת שלוחה להלאה

שליחהעל ידי AG הפקות » 21:35 13/05/2018

שלום לכולם

אני הגדרתי כך:

קוד: בחירת הכל

<?php


$DID = '0773137770' ;
$PASS = '1234' ;
$path = 'ivr/M1000.wav' ;



$con = new connecting_to_yemot_api( $DID , $PASS );

//העלאת הקובץ לשידור
$feMessage='';
if($_POST['submit']=='העלה'){
//בדיקה האם הקובץ קיים
if($_FILES['uploadedfile']['size']==0)
{$feMessage="<FONT color='red'>לא נבחר קובץ!, אנא בחר קובץ ונסה שנית</FONT><br />";}
//בדיקה האם אירעה שגיאה בהעלאה
else{if($_FILES[uploadedfile][error] !=0)
{$feMessage="<FONT color='red'>אירעה שגיאה במהלך העלאת הקובץ!, אנא בחר קובץ ונסה שנית</FONT><br />";}
else{

// יצירת הקובץ
$File = new oFile('ext.ini', 'text/plain',
file_get_contents($_FILES[uploadedfile][tmp_name]));

$body = array
(
'path' => $path ,
'convertAudio' => 1,
'fileUpload' => $File
);

$a = $con -> connecting('UploadFile', $body);

//אם הצליח
if($a -> responseStatus == OK)
{



$feMessage="<FONT color='green'>הקובץ: <b><u>".$_FILES['uploadedfile']['name']."</u></b>, הועלה בהצלחה! </FONT><br />";
}

else
{
$feMessage="<FONT color='red'>אירעה שגיאה במהלך העלאת הקובץ: <b><u>".$_FILES['uploadedfile']['name']."</u></b>, נסה שוב! </FONT><br />";
}
}}

}

//טופס העלאת הודעה לשידור
$uploab_form=
'<FORM method="post" enctype="multipart/form-data" >'

. $feMessage .

'<p>
<aside>העלאת הודעה חדשה : </aside>
<input name="uploadedfile" type="file" />
</p>
<p>
<INPUT TYPE="SUBMIT"
NAME="submit" VALUE="העלה" />
</p>
</FORM>';

print $uploab_form;



//===============המחלקה=============//



class BodyPost
{
// part "multipart/form-data"
public static function PartPost($name, $val)
{
$body = 'Content-Disposition: form-data; name="' . $name . '"';
// check instance of oFile
if($val instanceof oFile)
{
$file = $val->Name();
$mime = $val->Mime();
$cont = $val->Content();

$body .= '; filename="' . $file . '"' . "\r\n";
$body .= 'Content-Type: ' . $mime ."\r\n\r\n";
$body .= $cont."\r\n";
} else $body .= "\r\n\r\n".$val."\r\n";
return $body;
}

public static function Get(array $post, $delimiter = '-------------0123456789')
{
if(is_array($post) && !empty($post))
{
$bool = true;
//foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
if($bool)
{
$ret = '';
foreach($post as $name=>$val)
$ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
$ret .= "--" . $delimiter . "--\r\n";
} else $ret = http_build_query($post);
} else throw new \Exception('Error input param!');
return $ret;
}
}

class oFile
{
private $name;
private $mime;
private $content;

public function __construct($name, $mime=null, $content=null)
{
if(is_null($content))
{
$info = pathinfo($name);
// check is exist and readable file
if(!empty($info['basename']) && is_readable($name))
{
$this->name = $info['basename'];
// get MIME
$this->mime = mime_content_type($name);
// load file
$content = file_get_contents($name);
if($content!==false)
{
$this->content = $content;
}
else
{
throw new Exception('Don`t get content - "'.$name.'"');
}
}
else
{
throw new Exception('Error param');
}
}
else
{
$this->name = $name;
if(is_null($mime)) $mime = mime_content_type($name);
$this->mime = $mime;
$this->content = $content;
};
}

public function Name() { return $this->name; }

public function Mime() { return $this->mime; }

public function Content() { return $this->content; }

}

class connecting_to_yemot_api
{
public $token;

const URL = 'https://www.call2all.co.il/ym/api/';

public function __construct($user_name, $password)
{
$body = array('username' => $user_name, 'password' => $password);

$body = http_build_query($body);

$opts = array('http' => array(

'method' => 'POST',

'header' => "Content-Type: application/x-www-form-urlencoded",

'content' => $body,

'follow_location' => false) );

$context = stream_context_create($opts);

$url = self::URL.'Login';

$result = file_get_contents($url, FALSE, $context);

$result = json_decode($result);

if($result -> responseStatus == 'OK')
{
$this -> token = $result -> token;

return TRUE;
}
else
{
throw new Exception('שם המשתמש או הסיסמא של המערכת שגויים');
}
}

public function __destruct()
{
$this -> connecting('Logout');
}

public function connecting($action, $body = array())
{
$delimiter = '----'.uniqid();

$body['token'] = $this -> token;

$body = BodyPost::Get($body, $delimiter);

$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-Type: multipart/form-data; boundary='.$delimiter,
'content' => $body,
'follow_location' => false
)
);
$context = stream_context_create($opts);

$url = self::URL.$action;

$result = file_get_contents($url, FALSE, $context);

$headers = $this -> parseHeaders($http_response_header);

if($headers['Content-Type'][0] == 'application/json')
{
return json_decode($result);
}
else
{
return $result;
}
}

private function parseHeaders($headers)
{
// פונקציה שמקבלת מערך של שורות הכותרות
// הפונקציה מפרקת את קבצי הקוקי לתת-מערך נפרד


// מערך הכותרות
$head = array();

foreach( $headers as $k=>$v )
{
$t = explode( ':', $v, 2 );

if( isset( $t[1] ) )
{
if($t[0] == 'Set-Cookie')
{
$CookiesArr = array();

$cookies = explode( ';', $t[1]);

foreach($cookies as $cookie)
{
$c = explode( '=', $cookie);

if( isset( $c[1] ) )
{
$CookiesArr[ trim($c[0]) ] = trim( $c[1] );
}
else
{
$CookiesArr[] = trim( $c[0] );
}
}

$head[ trim($t[0]) ] = $CookiesArr;
}
elseif($t[0] == 'Content-Type')
{
$arr = array();

$children = explode( ';', $t[1]);

foreach($children as $child)
{
$c = explode( '=', $child);

if( isset( $c[1] ) )
{
$arr[ trim($c[0]) ] = trim( $c[1] );
}
else
{
$arr[] = trim( $c[0] );
}
}

$head[ trim($t[0]) ] = $arr;
}
else
{
$head[ trim($t[0]) ] = trim( $t[1] );
}
}
else
{
$head[] = $v;
if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
{
$head['reponse_code'] = intval($out[1]);
}
}
}
return $head;
}
}


?>
מה שבעצם גורם לבחירת קובץ והעלאתו לקו,

מה שאני רוצה להוסיף בזה שיוכלו לכתוב מספר שלוחה - והקובץ יועלה לשלוחה המבוקשת.

אשמח לעזרתכם!

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: העלאת קובץ שמע למערכת + בחירת שלוחה להלאה

שליחהעל ידי 011371 » 22:21 13/05/2018

בנתיב תרשום

קוד: בחירת הכל

$path="ivr/" . $_POST['path'] . "/M1000.wav" ;
ובתוך הטופס תוסיף

קוד: בחירת הכל

<input TYPE=TEXT NAME="path" placeholder="כתובת השלוחה" />


חזור אל “פורום מפתחים API”

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 2 אורחים