כנראה שבטעות הורדתי. בכל אופן אם צריך להחזיר אז להחזיר וכן אשמח שתעזור לי לפתור את העניין הזה של ההעלאה. השתגעתי כבר מזהאני לא רואה את הקובץ שאותו אתה מנסה להעלותזה מה שניסיתי לעשות אבל ללא הצלחה. אשמח שתעזור לי בזהקוד: בחירת הכל
<?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';
העלאת קבצים בapi של ימות בphp
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: העלאת קבצים בapi של ימות בphp
-
- הודעות: 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;
}
}
?>
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in
ובשורה 21
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: העלאת קבצים בapi של ימות בphp
ניסיתי גם להגדיר ככה ולא מצליח....אני ממש מבולבל.
אשמח לעזרה
אשמח לעזרה
קוד: בחירת הכל
<?php
include_once('0.php');
header('Content-Type: text/plain; charset=utf-8');
$url = "https://www.call2all.co.il/ym/api/UploadFile";
$body = array
(
'path' => 'ivr/extt.ini',
'convertAudio' => 0,
'fileUpload' => $url
);
print_r($a);
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: העלאת קבצים בapi של ימות בphp
@011371
@מאזין נלהב
@חוקר
יישר כח על כל העזרה
אשמח שתעזרו לי לגמור עם העניין הזה כי אני פשוט לא מצליח לעשות את זה.
תודה
@מאזין נלהב
@חוקר
יישר כח על כל העזרה
אשמח שתעזרו לי לגמור עם העניין הזה כי אני פשוט לא מצליח לעשות את זה.
תודה
-
- הודעות: 980
- הצטרף: 16:42 28/04/2016
Re: העלאת קבצים בapi של ימות בphp
גיליתי שחלק מהשיבושים זה שאני מעתיק את הקוד ישירות מכאן כולל הרווחים, וכשאני מוחק את הרווחים המיותרים אז זה עובד יותר טוב אבל עדיין יש שגיאות ועקבתי אחרי כל שגיאה וכל אחת שהיתה סימנתי ב//. אני מצרף לכאן את הקוד ואולי זה יעזור לשפוך אור על תעלומת ה phpleischer
קוד: בחירת הכל
<?php
header('Content-Type: text/html;charset=utf-8');
$con = new connecting_to_yemot_api('0722020200', '1234');
$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
אשמח מאד אם משהו יתפנה לעזור לי כי אני לא מצליח לבד וזה ממש קשה וכן זה מאד דחוף לי.
תודה
תודה
מי מחובר
משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 16 אורחים