באג בהעתקת קובץ ממערכת למערכת
-
מאחר והמודול של @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; } ?> -
@ivrפון כתב בבאג בהעתקת קובץ ממערכת למערכת:
path is invalid
כתוב לך...
תוסיף הדפסה למשתנה path02 ונראה מה הבעיה..
-
@אביי-ורבא עשיתי כבר הדפסה לשתי הכתובות
ראשונה
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 כלום
אבל ההדפסה של השגיאה היא מההעלאה -
@ivrפון השגיאה הזו אאל"ט מגיעה כשפרמטר הpath חסר או לא תקין בהעלאת קובץ,
כדי לנסות להבין מה לא תקיו, ביקשתי שתביא דוגמה לתוכן המשתנה שורה לפני שאתה כולל אותו בURL.. -
@אביי-ורבא הנה הבאתי לך דוגמה לפנית API מהקוד הזה
בתוכו יש את path=ivr2:1 זה דוגמה משימוש
הוספתי הדפסה של כתובות הURL שפונה אלהם -
@ivrפון תנסה לשלוח עם נתיב מלא כולל שם קובץ וסיומת, ותבדוק האם זה כן עובד
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות