@מנסה
אחרי שישבתי שעות ארוכות על העלאה של קובץ ואחרי עשרות כשלונות גיליתי שהקובץ משום מה הפך ל0.1 קילובייט וזה גרם לי שגיאה
תכלס - מה אשיב לה' [המדרש בילקוט שמעוני כותב 'חביב עלי חסד שאתם עושים זה עם זה יותר מזבחי שלמה המלך(הושע תקכב)]-
ע"כ מצורף שיפוץ של הקוד הבהיר של @mgm-ivr ו @מנסה הצדיקים .
אני כל כך רוצה גם לתרום משהו....
אז פשוט הוספתי הודעות של הפרטים החשובים עד שהגעתי למצוא את מקור השגיאה אצלי, ובעז"ה שיהיה לתועלת לאחרים.
<?php
$token = "0799*****:*****";
$path_in_yemot="ivr2:1/";
$New_file_name_to_yemot = "A123.wav";
$fileUpload="recording/A123.mp3";
//קריאה לפונקציה והוספתי האן עוד פרמטר שהוא שם קובץ היעד
ss = uploadFile(false,$token,$path_in_yemot,$New_file_name_to_yemot,$fileUpload);
//מראה את התשובה מימות, ניתן כמובן לבטל או להציג משהו אחר
print_r ($ss);
function uploadFile($isPrivate, $token ,$path ,$New_name,$file)
{
if ($isPrivate) {
$YemotUrl = 'https://private.call2all.co.il/ym/api/';
} else {
$YemotUrl = 'https://www.call2all.co.il/ym/api/';
}
$headers = array(
'Content-type: multipart/form-data'
);
$url = $YemotUrl . 'UploadFile';
$File_source = new CURLFile($file,'media/wav');
$parm['token'] = $token;
$parm['upload'] = $File_source;
$parm['path'] = "$path$New_name";
$parm['convertAudio'] = 1;
//-----------------------------------ביקורת----------------------------------
if (file_exists($file)==0) {
$message = "הקובץ $file לא נמצא";
}
$message="$message <br> הטוקן הוא: " . $parm['token'] ."<br>";
$message="$message שם הקובץ: " . $File_source->getFilename() . "<br>";
$message="$message גודל הקובץ הוא: " . ": " . filesize($file) . " bytes<br>";
$message="$message נתיב היעד בימות המשיח: " . $parm['path'] . "<br>";
//-------------בדיקה אם קיים כזה קובץ
$GetIvrTree = file_get_contents("http://call2all.co.il/ym/api/GetIvrTree?token=$token&path=ivr2:1");
if (mb_strpos($GetIvrTree, $New_name)>0) {
$message="$message <br> יש כבר קובץ בשם זהה לקובץ זה! ";
$message="$message <br> הפעולה לא בוצעה ";
goto a;
}
//-----------------------------------עד כאן---------------------------------
$curl = curl_init();
curl_setopt_array(
$curl,
array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $parm,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
)
);
$response = curl_exec($curl);
// echo "$response";
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$response = json_decode($response);
a:
$responseStatus = $response->{"responseStatus"};
if(!$responseStatus=="OK"){
return "$response <br> $message";
}
else{
return "הקובץ עלה בהצלחה!";
}
}
?>
ה'ביקורת קבצים (GetIvrTree)' לא מושלם בגלל שלא הצלחתי לפרק את המערך ולזהות את שם הקובץ, התחליף שאלטרתי הוא שהקוד מחפש את שם הקובץ בתוך הסטרינג שחוזר מימות המשיח (mb_strpos).
[הבעיה תהיה כשאתה מכניס קובץ בשם 1, וקיים כבר קוובץ בשם 11 הוא יעצור את התהליך כי הוא מצא את הספרה 1 וwav . (בתור 'תלאי על תלאי' אולי אפשר להוסיף נקודותיים לפני ופסיק אחרי שם הקובץ -- לא ניסיתי עדיין)
תודה לכולם והצלחה!!!