• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    איך להעלות קבצים מהשרת?

    פורום מפתחים API
    8
    26
    1067
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ד
      דבש @avrham נערך לאחרונה על ידי

      @avrham
      מזה??
      איפה זה?

      N A 2 תגובות תגובה אחרונה תגובה ציטוט 0
      • N
        nyh @דבש נערך לאחרונה על ידי

        @דבש
        הנושא שלך לא קשור לכאן. תפתח נושא חדש ויענו לך שם שא"א לעשות עם זה כלום, רק לשפר את הזיכרון. בסך הכל כמה שורות!

        ד תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • ד
          דבש @nyh נערך לאחרונה על ידי

          @nyh פותח

          תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • A
            avrham ניהול @nyh נערך לאחרונה על ידי

            @nyh אמר באיך להעלות קבצים מהשרת?:

            @avrham
            א"א בהעלאת קבצים, רק בcurl

            עובדה. שמואל הביא לי את זה ל TTS, עכשיו אני יבדוק על שמע,:

            $url = file_get_contents("https://www.call2all.co.il/ym/api/UploadTextFile?token=0773137770:123456&what=$ivr2:/203/1/000.tts&contents=" . file_get_contents('txt/yemot.txt'));
            
            מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • מ
              מנסה מומחה @avrham נערך לאחרונה על ידי

              @avrham

              זה לא אמור לעבוד

              העלאת קבצי שמע דורש המרה מיוחדת וכמו שהוסבר לעיל

              תגובה 1 תגובה אחרונה תגובה ציטוט 1
              • A
                ASS @דבש נערך לאחרונה על ידי

                פוסט זה נמחק!
                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • N
                  nyh @nyh נערך לאחרונה על ידי nyh

                  @nyh אמר באיך להעלות קבצים מהשרת?:

                  בהמשך למה ששאל @טוסטוס-לא-יעבור כאן!
                  איך מעלים קובץ מהשרת ב Curl? מה שכתוב שם לא עובד

                  @שמואל תוכל לעזור לנו לגבי זה?

                  שמואל C 2 תגובות תגובה אחרונה תגובה ציטוט 0
                  • שמואל
                    שמואל @nyh נערך לאחרונה על ידי

                    @nyh העלאת קובץ שמע חייבת להיות בפניית POST ב multipart form data

                    לפניות בנוגע לפורום: shmuel@yemot.co.il

                    N תגובה 1 תגובה אחרונה תגובה ציטוט 3
                    • N
                      nyh @שמואל נערך לאחרונה על ידי nyh

                      @שמואל
                      את זה אני יודע! אבל השאלה היא בפונקצייה שבנית. איזה פרמטרים צריך להכניס לכל משתנה?
                      ותודה על העזרה!

                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • C
                        chaim7 @nyh נערך לאחרונה על ידי chaim7

                        @nyh
                        שלום לשמואל 'ניהול ראשי'
                        סתם מתוך הסקרנות ו'הצמאון לדעת' בתור הגאון שייצר את המחלקה, אני מאמין שאתה הוא הכתובת, כי אני אוהב להבין דברים מאפס והבנת העניין יועיל לי מאוד!
                        אני רוצה לנסות להעלות קובץ מתוך השרת שלי בלי המחלקה עד כמה שהבנתי, מקריאה של כמה ימים (!) בפורם החדש והישן הכל תקין
                        ואני יוצא מדעתי למה הקוד הזה מביא לי שגיאה 105?????
                        הטוקן מתחבר.
                        הוא לכאורה יודע מאיפה לשאוב את הנתונים --fileUpload$
                        ולאיפה להכניס אותם --pathinyemot$
                        שולח POST
                        מה צריך לשנות בשביל שיהיה נכון?
                        בתודה על ההסברים היפים והברורים שלך באופן כללי....

                        
                        $fileUpload="recording/5.wav";  //קח את הקובץ הזה
                        $pathinyemot="ivr2:1/7.wav";  //תכניס לימות במיקום הבא
                        //-----------------------יצירת טוקן-----------------------------
                        $url = "https://www.call2all.co.il/ym/api/Login?username=0799*****&password=1234"; 
                        $ch = curl_init();  
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // החזר את תוכן העמוד. 
                        curl_setopt($ch, CURLOPT_URL, $url); //מעביר את כתובת האתר למשתנה. 
                        $result = curl_exec($ch); //תוצאה=תגובת השרת
                        $json = "$result";  //מכניס את השורה למשתנה
                                    $obj = json_decode($json);  //יעשה מהשורה ג'סון   //https://www.php.net/manual/en/function.json-decode.php
                                        $the_token= $obj->{"token"};    //יקבל את הטוקן אל תוך משתנה
                        //echo "הטוקן הוא: $the_token";
                        //----------------------------------העלאת קובץ----------------------------------------
                        $url2 = "https://www.call2all.co.il/ym/api/UploadFile?token=$the_token";
                        
                        $ch = curl_init();
                        curl_setopt($ch, CURLOPT_URL, $url2);
                        curl_setopt($ch, CURLOPT_HEADER, false);
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                        curl_setopt($ch, CURLOPT_POST, true);
                        curl_setopt($ch, CURLOPT_POSTFIELDS,
                        array(
                                'Upload' => file_get_contents($fileUpload),
                                'path' => $pathinyemot
                        ));
                        $result = curl_exec($ch);
                        echo $result;
                        curl_close($ch);
                        
                        
                        M תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • M
                          MGM IVR מומחה @chaim7 נערך לאחרונה על ידי

                          @chaim7 אמר באיך להעלות קבצים מהשרת?:

                          @nyh
                          שלום לשמואל 'ניהול ראשי'
                          סתם מתוך הסקרנות ו'הצמאון לדעת' בתור הספטס הגדול אני מאמין שאתה הוא הכתובת.
                          אני רוצה לנסות להעלות קובץ מתוך השרת שלי בלי המחלקה ---
                          אתה בטח מבין את אופן העבודה עם הAPI, ואני משתגע לקלוט
                          למה הקוד הזה מביא לי שגיאה 105?
                          הטוקן מתחבר.
                          הוא לכאורה יודע מאיפה לשאוב את הנתונים --fileUpload$
                          ולאיפה להכניס אותם --pathinyemot$
                          שולח POST
                          מה צריך לשנות בשביל שיהיה נכון?
                          בתודה על ההסברים היפים והברורים שלך באופן כללי....

                          
                          $fileUpload="recording/5.wav";  //קח את הקובץ הזה
                          $pathinyemot="ivr2:1/7.wav";  //תכניס לימות במיקום הבא
                          
                          $url = "https://www.call2all.co.il/ym/api/Login?username=0799*****&password=1234"; 
                          $ch = curl_init();  
                          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // החזר את תוכן העמוד. 
                          curl_setopt($ch, CURLOPT_URL, $url); //מעביר את כתובת האתר למשתנה. 
                          $result = curl_exec($ch); //תוצאה=תגובת השרת
                          $json = "$result";  //מכניס את השורה למשתנה
                                      $obj = json_decode($json);  //יעשה מהשורה ג'סון   //https://www.php.net/manual/en/function.json-decode.php
                                          $the_token= $obj->{"token"};    //יקבל את הטוקן אל תוך משתנה
                          //echo "הטוקן הוא: $the_token";
                          
                          
                          $url2 = "https://www.call2all.co.il/ym/api/UploadFile?token=$the_token";
                          
                          
                          $ch = curl_init();
                          curl_setopt($ch, CURLOPT_URL, $url2);
                          curl_setopt($ch, CURLOPT_HEADER, false);
                          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                          curl_setopt($ch, CURLOPT_POST, true);
                          curl_setopt($ch, CURLOPT_POSTFIELDS,
                          array(
                                  'Upload' => file_get_contents($fileUpload),
                                  'path' => $pathinyemot
                          ));
                          
                          $result = curl_exec($ch);
                          echo $result;
                          curl_close($ch);
                          
                          

                          אתה לא כתבת פה שיעלה איך שמעלים קובץ אלא סתם כמערך רגיל

                          גם אני הסתבכתי לפני כמה ימים בעניין
                          תבדוק פה
                          https://f2.freeivr.co.il/topic/7816/איך-מעלים-קובץ-שמע-בapi-עם-הפונקציה-של-שמואל/10?_=1641169716468

                          C תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • C
                            chaim7 @MGM IVR נערך לאחרונה על ידי chaim7

                            @mgm-ivr
                            תודה על התגובה! (פגשתי וקראתי את הפוסט שלך הרבה מאוד פעמים בתוך כדי חיפוש...)
                            עד כמה שהבנתי אתה מייצר טופס וקבלה של הטופס האותו כתובת. זה מאוד יפה! עבודה טובה!
                            אני צריך עכשיו שהPHP יקח קובץ מהשרת וישלח אותו לימות בלי טופס את הפרטים הוא ישיג מהטבלאות שלו.....

                            M תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • M
                              MGM IVR מומחה @chaim7 נערך לאחרונה על ידי

                              @chaim7 אמר באיך להעלות קבצים מהשרת?:

                              @mgm-ivr
                              תודה על התגובה! (פגשתי וקראתי את הפוסט שלך הרבה מאוד פעמים בתוך כדי חיפוש...)
                              עד כמה שהבנתי אתה מייצר טופס וקבלה של הטופס האותו כתובת. זה מאוד יפה! עבודה טובה!
                              אני צריך עכשיו שהPHP יקח קובץ מהשרת וישלח אותו לימות בלי טופס.

                              זה גם מה שאני עשיתי
                              תסתכל שם בתגובה של

                              @amp-software-0 אמר באיך מעלים קובץ שמע בAPI עם הפונקציה של שמואל?:

                              @mgm-ivr @מנסה
                              ערכתי את הקוד של @שמואל לשימוש ציבורי
                              זה הקוד

                              function uploadFile($isPrivate, $token ,$path ,$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'; 
                                  $target = new CURLFile($file,'media/wav');
                              
                                  $parm['upload'] = $target;
                                  $parm['token'] = $token;
                                  $parm['path'] = $path . '/' . $target->getFilename();
                                  $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);
                                  $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
                                  curl_close($curl); 
                                  $response = json_decode($response, true);
                                  return $response;
                              }
                              

                              צריך לשלוח 4 פרמטרים isPrivate - ערך בוליאני אם המערכת בשרת פרייבט, token, path, ו- file - שם הקובץ להעלאה

                              דוגמא

                              uploadFile(false,'0773137770:2580','ivr2:/1','M1024.wav');
                              

                              בדוגמא הקובץ נמצא באותה תיקיה של קובץ ה php, במידה והקובץ להעלאה נמצא בתיקיה משנית (הנקראת לדגומא subFolder) יש להזין כך:

                              uploadFile(false,'0773137770:2580','ivr2:/1','subFolder/M1024.wav');
                              

                              הפונקציה מחזירה אובייקט json עם נתוני הפעולה, ניתן לקבל אותו גם כסטרינג כמובן

                              עם זה אני נעזרתי
                              אני חושב שזה יעזור גם לך

                              C תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • C
                                chaim7 @MGM IVR נערך לאחרונה על ידי

                                @mgm-ivr
                                הוא נתקע בגלל שגיאה בשורה הזאת:

                                    $response = curl_exec($curl);
                                
                                

                                כלומר לא מצליח לפתוח את הקישור

                                מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • מ
                                  מנסה מומחה @chaim7 נערך לאחרונה על ידי

                                  @chaim7

                                  שים לב שחסר שם את פרמטר ההמרה לשמע , ובהמשך השרשור שם שמתי עם הפרמטר הזה ואז הכל תקין [אני הצלחתי להעלות...]

                                  C תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                  • C
                                    chaim7 @מנסה נערך לאחרונה על ידי chaim7

                                    @מנסה
                                    אחרי שישבתי שעות ארוכות על העלאה של קובץ ואחרי עשרות כשלונות גיליתי שהקובץ משום מה הפך ל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 . (בתור 'תלאי על תלאי' אולי אפשר להוסיף נקודותיים לפני ופסיק אחרי שם הקובץ -- לא ניסיתי עדיין)
                                    תודה לכולם והצלחה!!!

                                    תגובה 1 תגובה אחרונה תגובה ציטוט 5
                                    • הוזכר על-ידי  M MGM IVR 
                                    • פוסט ראשון
                                      פוסט אחרון