העלאת קבצים לפי הסדר
-
הנה קוד שמחזיר את הקובץ WAV הכי גבוה בשלוחה
<?php $r = file_get_contents("http://call2all.co.il/ym/api/GetIvrTree?token=03*******:****&path=ivr2:/1"); $a="wav"; $pos = strrpos($r, $a); $e = substr($r, $pos-4,3); print $e;
ותן לקובץ שם של
$e+1
-
@מנסה אמר בהעלאת קבצים לפי הסדר:
תנסה דרך זה וצריך להעלות את הקבצים לשלוחה כל שהיא ואח"כ להעביר אותם לשלוחת היעד בקבצים מרובים וזה ייתן להם מספר לפי סדר העתקה...
לא עובד, מועתק בשם המקורי
ניסיתי כך
https://www.call2all.co.il/ym/api/FileAction?token=07*********:****&action=copy&what0=ivr2:47/000.tts&what1=ivr2:47/001.tts&target=ivr2:48
והתשובה היא: הצלחה, אבל כל קובץ מועתק בנפרד{"responseStatus":"OK","message":"ok","yemotAPIVersion":6}
{"responseStatus":"OK","reports":[{"what":"ivr2:47/001.tts","target":"ivr2:48/001.tts","success":true},{"what":"ivr2:47/000.tts","target":"ivr2:48/000.tts","success":true}],"message":"ok","success":true,"action":"copy","yemotAPIVersion":6}
{"responseStatus":"OK","message":"ok","yemotAPIVersion":6}
{"responseStatus":"OK","reports":[{"what":"ivr2:47/001.tts","target":"ivr2:48/001.tts","success":true},{"what":"ivr2:47/000.tts","target":"ivr2:48/000.tts","success":true}],"message":"ok","success":true,"action":"copy","yemotAPIVersion":6} -
-
@שאול
הקוד הזה מביא לך את מספר הקובץ הגבוהה בשלוחה.
https://f2.freeivr.co.il/post/35189ואל תשכח להוסיף את זה
https://f2.freeivr.co.il/post/35198 -
@מנסה אמר בהעלאת קבצים לפי הסדר:
קבלת רשימת קבצים שבשלוחה-GetIvrTree
רק את זה [בלי פרמטרים וכמובן יש להכניס טוקן]
צריך פרמטר path
-
@שאול בעיקרון אין בפונקציה של העלאת קובץ מספור אוטומטי. (וחבל)
כמו שכתבו לך - יש אפשרות לקבל את רשימת הקבצים בשלוחה ואז להחליט איך לקרוא לקובץ.אני חושב שיש בזה קצת בעיה, כי אם יש העלאה במקום אחר (או הקלטה לשלוחה) אז זה יכול ליצור התנגשות.
כמו כן אם יש הרבה קבצים בשלוחה, אז ייקח זמן לשרת להחזיר את רשימת הקבצים בשלוחה. (וכאמור אתה לא יכול להתקדם לשלב הבא בלי לקבל את רשימת הקבצים)חשבתי על פתרון יותר מהיר, ויותר בטוח.
הרעיון הוא ליצור תיקייה במערכת ששם יאוחסנו הקצים בצורה זמנית.תפתח מתחת השלוחה הראשית תיקייה בשם
UploadFile
.
כל קובץ שאתה מעלה למערכת תעלה לשם.
שם הקובץ צריך לכלול ספרות בלבד.
אחרי שהקובץ הועלה תבצע העברה שלו לשלוחה הרצויה (עם FileAction) וכך הוא ימוספר אוטומטי. -
@מנסה אמר בהעלאת קבצים לפי הסדר:
צריך להעלות את הקבצים לשלוחה כל שהיא ואח"כ להעביר אותם לדשלוחת היעד בקבצים מרובים וזה ייתן להם מספר לפי סדר העתקה...
-
@eliyahu אמר בהעלאת קבצים לפי הסדר:
שם הקובץ צריך לכלול ספרות בלבד.
הכוונה עם סיומת, נכון?
אחרי שהקובץ הועלה תבצע העברה שלו לשלוחה הרצויה (עם FileAction) וכך הוא ימוספר אוטומטי.
השאלה אם מספור אוטומטי בהעברת קובץ מוגבל רק לקבצי WAV?
כי כמו שכתבתי, ניסיתי על קובץ TTS וזה לא ממוספר -
-
אגב בניתי פונקציה בphp שבודקת מה השם של הקובץ בשביל המספור אוטומטי, זה עובד גם על קבצי tts,
אם יהיה צורך נעלה את זה לפרום לטובת כולם -
@ערוץ-הסקרים אמר בהעלאת קבצים לפי הסדר:
אגב בניתי פונקציה בphp שבודקת מה השם של הקובץ בשביל המספור אוטומטי, זה עובד גם על קבצי tts,
אם יהיה צורך נעלה את זה לפרום לטובת כולםלי אישית זה יעזור מאוד
-
@eliyahu אתה יכול לאשר או להפריך את זה שהמספור אוטומטי בהעתקה הינו רק לקבצי WAV?
כי ניסיתי עכשיו גם על קבצי OGG וזה לא ממוספר
(ראיתי את זה מזמן גם בהעתקה דרך האתר שניסיתי להעתיק קבצים בסיומת OGG וזה נשאר עם אותו שם, ועכשיו ניסיתי שוב)
וכמו שכתבתי גם לא בקבצי TTS -
@מנסה אמר בהעלאת קבצים לפי הסדר:
הנה קוד שמחזיר את הקובץ WAV הכי גבוה בשלוחה
<?php $r = file_get_contents("http://call2all.co.il/ym/api/GetIvrTree?token=03*******:****&path=ivr2:/1"); $a="wav"; $pos = strrpos($r, $a); $e = substr($r, $pos-4,3); print $e;
ותן לקובץ שם של
$e+1
הבעיה מתחילה כשיש יותר מ1000 קבצים והקובץ האחרון הוא בעל שם של 4 מספרים
-
לטובת כולם אני מעלה כאן את הפונקציה לקבלת שם לקובץ עוקב בשלוחה בשפת php
<?php function FileNameToUpload($server="www", $token, $path){ $array = json_decode(file_get_contents("https://{$server}.call2all.co.il/ym/api//GetIVR2Dir?token={$token}&path={$path}"),true); if($array["responseStatus"] == "OK"){ foreach($array["files"] as $key => $value){ if($value["fileType"] == "AUDIO" || $value["fileType"] == "TTS"){ $split = explode(".",$value["name"]); if (is_numeric($split[0])){ break; } } } if($split[0] == null){ $NewFileName = 0; }else{ $NewFileName = $split[0]+1; } //הפוך למינימום 3 ספרות/ return str_pad($NewFileName,3,"0",STR_PAD_LEFT); }else{ //במקרה של שגיאה } } ?>
דוגמא לקריאה לפונקציה
$NewFileName = FileNameToUpload("www", "07770000:000", "ivr2:/1"); if($NewFileName != null){ $path = "$path/$NewFileName.tts"; //מכריז על שם של נתיב הקובץ להעלאה }