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

    באג בהעתקת קובץ ממערכת למערכת

    פורום PHP
    2
    6
    119
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • I
      ivrפון מומחה נערך לאחרונה על ידי

      מאחר והמודול של @121244 לא תמיד עובד כי יש לו בעיות בשרת
      פנה אלי מישהו בבקשה לפתח מודול כזה
      אז פיתחתי מודול כזה
      שאמור לשמש כהטמעה בהשמעת קבצים במקרה שok==ok ואם לא אז כשלוחה בפני עצמה
      משום התשובה היא

      {"responseStatus":"ERROR","message":"path is invalid","messageCode":110,"yemotAPIVersion":6,"success":false}
      

      הקוד

      <?php
      $what=$GET['what'];
      $pass1=$_GET['pass1'];
      $ApiDID=$_GET['ApiDID'];
      $pass2=$_GET['pass2'];
      $did2=$_GET['did2'];
      $did1=$_GET['did1'];
      $path01=$_GET['path01'];
      $path02=$_GET['path02'];
      $what0=$GET['what0'];
      $ok=$_GET['ok'];
      $what=$GET['what'];
       if($ok=='ok'){
          if($pass1==null){print"read=t-הקש את הסיסמה הראשונה.=pass1,yes,,,,No,";exit();}
      elseif($did2==null){print"read=t-הקש את המספר השני.=did2,yes,,,,No,";exit();}
      elseif($pass2==null){print"read=t-הקש את הסיסמה השניה.=pass2,yes,,,,No,";exit();}
      elseif($path02==null){print"read=t-הקש את שלוחת היעד.=path02,,,,,No,";exit();}
      // כתובת ה-URL של הקובץ שברצונך להעלות
      $file = "https://www.call2all.co.il/ym/api/DownloadFile?token=$ApiDID:$pass1&path={$what}";
       
      // כתובת ה-API של ימות המשיח להעלאת קבצים
      $YemotUrl = "https://www.call2all.co.il/ym/api/UploadFile?token=$did2:$pass2&path=ivr2:$path02&convertAudio=0&autoNumbering=true&tts=0&";
      //$YemotUrl = urlencode($YemotUrl);
      //$file = urlencode($file);
      // הגדרת כותרות לבקשת ה-CURL (כאן, מציינים שמדובר בנתוני טופס שמכילים קבצים)
      $headers = array(
          'Content-type: multipart/form-data'
      );
       
      // שמירת תוכן הקובץ מה-URL לקובץ זמני במערכת בשם "file.wav"
      file_put_contents("file.wav", file_get_contents($file,true));
      
      $target = new CURLFile("file.wav", 'media/wav');
       
      $parm['upload'] = $target;
      
      // אתחול משאב ה-CURL לביצוע בקשת HTTP
      $curl = curl_init();
       
      // הגדרת מאפייני ה-CURL לביצוע הבקשה (כולל URL, פרמטרים, כותרות וכו')
      curl_setopt_array(
          $curl,
          array(
              CURLOPT_URL => $YemotUrl, // הגדרת כתובת ה-API שאליה תישלח הבקשה
              CURLOPT_POST => true, // הגדרת הבקשה כ-POST (שולחת נתונים)
              CURLOPT_POSTFIELDS => $parm, // שליחת מערך הפרמטרים (כולל הקובץ)
              CURLOPT_HTTPHEADER => $headers, // הגדרת הכותרות לבקשה
              CURLOPT_RETURNTRANSFER => true, // קבלת תגובת השרת בחזרה
          )
      );
      
      // ביצוע הבקשה ושמירת תגובת השרת במשתנה $response
      $response = curl_exec($curl);
      
      // קבלת קוד הסטטוס של הבקשה (לדוגמה, 200 אם הצליח)
      $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
      
      // סגירת משאב ה-CURL כדי לשחרר זיכרון
      curl_close($curl);
      
      // הדפסת תגובת השרת
      echo "$response";}
      else{
          if($did1==null){print"read=t-הקש את המספר הראשון.=did1,yes,,,,No,";exit();}
      elseif($pass1==null){print"read=t-הקש את הסיסמה הראשונה.=pass1,yes,,,,No,";exit();}
      elseif($path01==null){print"read=t-הקש את השלוחה ממנה יקח את הקובץ ובסיום הקש סולמית.=path01,,,,,No,";exit();}
      elseif($what0==null){print"read=t-הקש את מספר הקובץ אותו יעתיק.=what0,,,,,No,";exit();}
      elseif($did2==null){print"read=t-הקש את המספר השני.=did2,yes,,,,No,";exit();}
      elseif($pass2==null){print"read=t-הקש את הסיסמה השניה.=pass2,yes,,,,No,";exit();}
      elseif($path02==null){print"read=t-הקש את שלוחת היעד.=path02,,,,,No,";exit();}
      // כתובת ה-URL של הקובץ שברצונך להעלות
      $file = "https://www.call2all.co.il/ym/api/DownloadFile?token=$did1:$pass1&path=ivr2:$path01";
       
      // כתובת ה-API של ימות המשיח להעלאת קבצים
      $YemotUrl = "https://www.call2all.co.il/ym/api/UploadFile?token=$did2:$pass2&path=ivr2:$path=$path02&convertAudio=0&autoNumbering=true&tts=0&";
      //$YemotUrl = urlencode($YemotUrl);
      //$file = urlencode($file);
      // הגדרת כותרות לבקשת ה-CURL (כאן, מציינים שמדובר בנתוני טופס שמכילים קבצים)
      $headers = array(
          'Content-type: multipart/form-data'
      );
       
      // שמירת תוכן הקובץ מה-URL לקובץ זמני במערכת בשם "file.wav"
      file_put_contents("file.wav", file_get_contents($file,true));
      
      // יצירת אובייקט CURLFile לייצוג הקובץ שיועלה לשרת, עם סוג MIME המתאים
      $target = new CURLFile("file.wav", 'media/wav');
       
      // הוספת הקובץ למערך הפרמטרים שישלח בבקשת ה-CURL
      $parm['upload'] = $target;
      
      // אתחול משאב ה-CURL לביצוע בקשת HTTP
      $curl = curl_init();
       
      // הגדרת מאפייני ה-CURL לביצוע הבקשה (כולל URL, פרמטרים, כותרות וכו')
      curl_setopt_array(
          $curl,
          array(
              CURLOPT_URL => $YemotUrl, // הגדרת כתובת ה-API שאליה תישלח הבקשה
              CURLOPT_POST => true, // הגדרת הבקשה כ-POST (שולחת נתונים)
              CURLOPT_POSTFIELDS => $parm, // שליחת מערך הפרמטרים (כולל הקובץ)
              CURLOPT_HTTPHEADER => $headers, // הגדרת הכותרות לבקשה
              CURLOPT_RETURNTRANSFER => true, // קבלת תגובת השרת בחזרה
          )
      );
      
      // ביצוע הבקשה ושמירת תגובת השרת במשתנה $response
      $response = curl_exec($curl);
      
      // קבלת קוד הסטטוס של הבקשה (לדוגמה, 200 אם הצליח)
      $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
      
      // סגירת משאב ה-CURL כדי לשחרר זיכרון
      curl_close($curl);
      
      // הדפסת תגובת השרת
      echo $response;
      }
      ?>
      
      א תגובה 1 תגובה אחרונה תגובה ציטוט 1
      • א
        אביי ורבא @ivrפון נערך לאחרונה על ידי

        @ivrפון כתב בבאג בהעתקת קובץ ממערכת למערכת:

        path is invalid

        כתוב לך...

        תוסיף הדפסה למשתנה path02 ונראה מה הבעיה..

        I תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • I
          ivrפון מומחה @אביי ורבא נערך לאחרונה על ידי ivrפון

          @אביי-ורבא עשיתי כבר הדפסה לשתי הכתובות
          ראשונה
          https://www.call2all.co.il/ym/api/DownloadFile?token=token&path=
          שניה
          https://www.call2all.co.il/ym/api/UploadFile?token=token&path=ivr2:1&convertAudio=0&autoNumbering=true&tts=0&
          ומה שמוזר שבראשון אין אחרי הpath כלום
          אבל ההדפסה של השגיאה היא מההעלאה

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

            @ivrפון השגיאה הזו אאל"ט מגיעה כשפרמטר הpath חסר או לא תקין בהעלאת קובץ,
            כדי לנסות להבין מה לא תקיו, ביקשתי שתביא דוגמה לתוכן המשתנה שורה לפני שאתה כולל אותו בURL..

            I תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • I
              ivrפון מומחה @אביי ורבא נערך לאחרונה על ידי

              @אביי-ורבא הנה הבאתי לך דוגמה לפנית API מהקוד הזה
              בתוכו יש את path=ivr2:1 זה דוגמה משימוש
              הוספתי הדפסה של כתובות הURL שפונה אלהם

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

                @ivrפון תנסה לשלוח עם נתיב מלא כולל שם קובץ וסיומת, ותבדוק האם זה כן עובד

                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • פוסט ראשון
                  פוסט אחרון