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

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

    מתוזמן נעוץ נעול הועבר פורום PHP
    6 פוסטים 2 כותבים 234 צפיות 3 עוקבים
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • 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

                שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                הרשמה התחברות
                • פוסט ראשון
                  פוסט אחרון