איך להעלות קבצים מהשרת?
-
@nyh
נכון
רק זה באנגלית... -
@דבש אני רוצה להבין שכולם פה שולטים באנגלית? ?
-
@nyh דווקא curl ? אז תשתמש ב file get contents , מה יקרה...
-
@דבש אמר באיך להעלות קבצים מהשרת?:
@דבש אני רוצה להבין שכולם פה שולטים באנגלית? ?
אבל לא צריך לדעת אנגלית בשביל לבדוק אם כתוב פעמיים...
לא הייתי אומר כולם, אבל מתכנתים - רובם הגדול כן , השאר יודעים חלקי...
-
@avrham
א"א בהעלאת קבצים, רק בcurl -
@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'));
-
-
פוסט זה נמחק! -
@nyh אמר באיך להעלות קבצים מהשרת?:
בהמשך למה ששאל @טוסטוס-לא-יעבור כאן!
איך מעלים קובץ מהשרת ב Curl? מה שכתוב שם לא עובד@שמואל תוכל לעזור לנו לגבי זה?
-
@nyh העלאת קובץ שמע חייבת להיות בפניית POST ב multipart form data
-
@שמואל
את זה אני יודע! אבל השאלה היא בפונקצייה שבנית. איזה פרמטרים צריך להכניס לכל משתנה?
ותודה על העזרה! -
@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);
-
@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 -
@mgm-ivr
תודה על התגובה! (פגשתי וקראתי את הפוסט שלך הרבה מאוד פעמים בתוך כדי חיפוש...)
עד כמה שהבנתי אתה מייצר טופס וקבלה של הטופס האותו כתובת. זה מאוד יפה! עבודה טובה!
אני צריך עכשיו שהPHP יקח קובץ מהשרת וישלח אותו לימות בלי טופס את הפרטים הוא ישיג מהטבלאות שלו..... -
@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 עם נתוני הפעולה, ניתן לקבל אותו גם כסטרינג כמובן
עם זה אני נעזרתי
אני חושב שזה יעזור גם לך -
@mgm-ivr
הוא נתקע בגלל שגיאה בשורה הזאת:$response = curl_exec($curl);
כלומר לא מצליח לפתוח את הקישור
-
שים לב שחסר שם את פרמטר ההמרה לשמע , ובהמשך השרשור שם שמתי עם הפרמטר הזה ואז הכל תקין [אני הצלחתי להעלות...]