https://www.call2all.co.il/ym/api/Uploa ... ivr/mm.ini
איך אני יכול להעלות בלינק הזה באמצעות php.
העלאת קבצים בapi של ימות בphp
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: העלאת קבצים בapi של ימות בphp
לעת עתה ראיתי שזה פעיל רק עם מגדירים בhtml.
אין דרך לנסות להגדיר את זה בphp?זה דיי דחוף לי.
אין דרך לנסות להגדיר את זה בphp?זה דיי דחוף לי.
Re: העלאת קבצים בapi של ימות בphp
בדיוק בשביל זה "מאזין נלהב" פרסם מחלקה שלמה , עיין שם ותמצא נחתלעת עתה ראיתי שזה פעיל רק עם מגדירים בhtml.
אין דרך לנסות להגדיר את זה בphp?זה דיי דחוף לי.
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: העלאת קבצים בapi של ימות בphp
לצערי זה לא עובד לי בשרת החינמי של הוסטינגר.בדיוק בשביל זה "מאזין נלהב" פרסם מחלקה שלמה , עיין שם ותמצא נחתלעת עתה ראיתי שזה פעיל רק עם מגדירים בhtml.
אין דרך לנסות להגדיר את זה בphp?זה דיי דחוף לי.
ואולי הסיבה נובעת מעליונות הכתיבה שם כי יש הרבה קודים שהמערכת שלי לא מקבלת.
אם יש לך דרך לעזור לי, או לפחות לתת לי את הקודים המתאימים רק להעלות קובץ, אשמח מאד ואוכל אי"ה לצ'פר אותך.
תודה
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: העלאת קבצים בapi של ימות בphp
זה מה שניסיתי לעשות אבל ללא הצלחה. אשמח שתעזור לי בזה
קוד: בחירת הכל
<?php
$File = 'type=meunu';
$url = "https://www.call2all.co.il/ym/api/UploadFile?";
$body = array
(
'path' => 'ivr/ext.ini',
'convertAudio' => 0,
'fileUpload' => $File
);
$a = $con -> connecting('UploadFile', $body);
print_r($File);
Re: העלאת קבצים בapi של ימות בphp
עושה רושם שאתה כבר כמה שבועות עוסק באיזה פיתוח מעניין,
אולי תפרט מה בדיוק אתה רוצה לעשות?
יכול להיות שאתה עמל לשווא לפלס לך דרך בשדה קוצים, במקום לצעוד בדרך הסלולה בשעה שיש קודים מוכנים לפעולה שאחרים כבר כתבו ויתכן שמוכנים לשתף
נ.ב. אם אתה מתכנן להשלים את הפרוייקט על שרת חינמי , קח בחשבון שזה ספק ברכה לבטלה , וכדאי שתשדרג
במחיר של 30 - 50 ₪ לחודש אתה יכול למצוא שרתי אחסון של חברות גדולות ומהימנות המספיקים די והותר לפרוייקטים מסוג זה
אולי תפרט מה בדיוק אתה רוצה לעשות?
יכול להיות שאתה עמל לשווא לפלס לך דרך בשדה קוצים, במקום לצעוד בדרך הסלולה בשעה שיש קודים מוכנים לפעולה שאחרים כבר כתבו ויתכן שמוכנים לשתף
נ.ב. אם אתה מתכנן להשלים את הפרוייקט על שרת חינמי , קח בחשבון שזה ספק ברכה לבטלה , וכדאי שתשדרג
במחיר של 30 - 50 ₪ לחודש אתה יכול למצוא שרתי אחסון של חברות גדולות ומהימנות המספיקים די והותר לפרוייקטים מסוג זה
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: העלאת קבצים בapi של ימות בphp
אני עושה הכל בהתנדבות לעילוי נשמת סבי ולכן אין לי מאיפה להשקיע.עושה רושם שאתה כבר כמה שבועות עוסק באיזה פיתוח מעניין,
אולי תפרט מה בדיוק אתה רוצה לעשות?
יכול להיות שאתה עמל לשווא לפלס לך דרך בשדה קוצים, במקום לצעוד בדרך הסלולה בשעה שיש קודים מוכנים לפעולה שאחרים כבר כתבו ויתכן שמוכנים לשתף
נ.ב. אם אתה מתכנן להשלים את הפרוייקט על שרת חינמי , קח בחשבון שזה ספק ברכה לבטלה , וכדאי שתשדרג
במחיר של 30 - 50 ₪ לחודש אתה יכול למצוא שרתי אחסון של חברות גדולות ומהימנות המספיקים די והותר לפרוייקטים מסוג זה
אשמח אם תעזור לי במה שיש לי.
Re: העלאת קבצים בapi של ימות בphp
אני לא רואה את הקובץ שאותו אתה מנסה להעלותזה מה שניסיתי לעשות אבל ללא הצלחה. אשמח שתעזור לי בזהקוד: בחירת הכל
<?php
$File = 'type=meunu';
$url = "https://www.call2all.co.il/ym/api/UploadFile?";
$body = array
(
'path' => 'ivr/ext.ini',
'convertAudio' => 0,
'fileUpload' => $File
);
$a = $con -> connecting('UploadFile', $body);
print_r($File);
יש מחלקה בפני העצמה האחראית ליצירת הקובץ
השורה:
קוד: בחירת הכל
$File = 'type=meunu';
-
- הודעות: 368
- הצטרף: 00:01 29/07/2016
- מיקום: ארץ ישראל
Re: העלאת קבצים בapi של ימות בphp
נסה את זה
קוד: בחירת הכל
<?php
$con = new connecting_to_yemot_api('0773137770', '0000');
$File = new oFile('ext.ini', 'text/plain', 'type=menu');
$body = array
(
'path' => 'ivr/ext.ini',
'convertAudio' => 0,
'fileUpload' => $File
);
$a = $con -> connecting('UploadFile', $body);
print_r($a);
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;
}
}
?>
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: העלאת קבצים בapi של ימות בphp
יש מצב להביא לי לכאן בתור קובץ מצורף?
נסה את זהקוד: בחירת הכל
<?php
$con = new connecting_to_yemot_api('0773137770', '0000');
$File = new oFile('ext.ini', 'text/plain', 'type=menu');
$body = array
(
'path' => 'ivr/ext.ini',
'convertAudio' => 0,
'fileUpload' => $File
);
$a = $con -> connecting('UploadFile', $body);
print_r($a);
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;
}
}
?>
מי מחובר
משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 2 אורחים