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

    העלאת קובץ גדול לא עובד

    פורום PHP
    1
    1
    15
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • 1
      121244 נערך לאחרונה על ידי

      יש לי קוד שאמור להצליח לעלות גם קבצים גדולים ומשום מה בשלב של החיבור זה נתקע
      מצורף הקוד והפלט אשמח לעזרה

      <?php
      // פרטי התחברות והגדרות
      $token = ':'; // מספר מערכת וסיסמה או API_KEY
      $localFilePath = 'file.mp3';    // הקובץ שברצונך להעלות
      $remotePath = 'ivr2:567.wav';   // הנתיב במערכת
      $chunkSize = 10 * 1024 * 1024;  // גודל מקטע (10MB לדוגמה)
      
      $fileName = basename($localFilePath);
      $totalFileSize = filesize($localFilePath);
      $qquuid = bin2hex(random_bytes(16));
      $totalParts = ceil($totalFileSize / $chunkSize);
      
      $handle = fopen($localFilePath, 'rb');
      if (!$handle) {
          die("Cannot open local file");
      }
      
      for ($partIndex = 0; $partIndex < $totalParts; $partIndex++) {
          $offset = $partIndex * $chunkSize;
          fseek($handle, $offset);
          $chunkData = fread($handle, $chunkSize);
      
          // שמירת החלק כקובץ זמני
          $tmpFile = tempnam(sys_get_temp_dir(), 'chunk_');
          file_put_contents($tmpFile, $chunkData);
      
          $postFields = [
              'token' => $token,
              'path' => $remotePath,
              'qquuid' => $qquuid,
              'qqpartindex' => $partIndex,
              'qqpartbyteoffset' => $offset,
              'qqchunksize' => strlen($chunkData),
              'qqtotalparts' => $totalParts,
              'qqtotalfilesize' => $totalFileSize,
              'qqfilename' => $fileName,
              'qqfile' => curl_file_create($tmpFile, 'application/octet-stream', 'part')
          ];
      
          $ch = curl_init('https://www.call2all.co.il/ym/api/UploadFile');
          curl_setopt($ch, CURLOPT_POST, true);
          curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
          $response = curl_exec($ch);
      
          if ($response === false) {
              echo "Curl error on part $partIndex: " . curl_error($ch) . "\n";
          } else {
              echo "Part $partIndex uploaded: $response\n";
          }
      
          curl_close($ch);
          unlink($tmpFile); // מחיקת הקובץ הזמני
      }
      
      fclose($handle);
      
      // שליחת בקשת Done
      $doneParams = [
          'done' => '',
          'token' => $token,
          'path' => $remotePath,
          'qquuid' => $qquuid,
          'qqfilename' => $fileName,
          'qqtotalfilesize' => $totalFileSize,
          'qqtotalparts' => $totalParts,
          'convertAudio' => 1
      ];
      
      $doneUrl = 'https://www.call2all.co.il/ym/api/UploadFile?' . http_build_query($doneParams);
      $response = file_get_contents($doneUrl);
      
      if ($response === false) {
          echo "Error sending Done request\n";
      } else {
          echo "Done response: $response\n";
      }
      ?>
      
      

      וזה הפלט
      Part 0 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 1 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 2 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 3 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 4 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 5 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 6 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 7 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 8 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 9 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 10 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 11 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 12 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 13 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 14 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 15 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 16 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 17 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 18 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 19 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 20 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 21 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":10485760,"yemotAPIVersion":7,"success":true} Part 22 uploaded: {"responseStatus":"OK","path":"ivr/567.wav","size":785716,"yemotAPIVersion":7,"success":true} Done response: {"responseStatus":"ERROR","message":"System error","messageCode":105,"yemotAPIVersion":7,"success":false}

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