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

    חדש!!! - דף html להעלאת קבצי שמע פלוס כותרת

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

      דף ייעודי שמיועד להעלאת כותרת להודעה בקלות וביעילות !!!

      הקוד בספויילר

      <!DOCTYPE html>
      <html lang="he" dir="rtl">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>העלאת קבצים לימות המשיח</title>
          <style>
              :root {
                  --primary-color: #4a90e2;
                  --hover-color: #357abd;
                  --bg-gradient: linear-gradient(135deg, #0f2027, #203a43, #2c5364);
                  --card-bg: #1e1e1e;
                  --input-bg: #2a2a2a;
                  --text-color: #e0e0e0;
                  --border-color: #3a3a3a;
              }
      
              body {
                  background: var(--bg-gradient);
                  color: var(--text-color);
                  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
                  display: flex;
                  flex-direction: column;
                  align-items: center;
                  justify-content: center;
                  min-height: 100vh;
                  margin: 0;
                  padding: 20px;
                  box-sizing: border-box;
              }
      
              .container {
                  background-color: var(--card-bg);
                  padding: 40px;
                  border-radius: 16px;
                  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
                  max-width: 480px;
                  width: 100%;
                  border: 1px solid rgba(255, 255, 255, 0.05);
              }
      
              h1 {
                  font-size: 24px;
                  margin-top: 0;
                  margin-bottom: 30px;
                  text-align: center;
                  color: #ffffff;
                  font-weight: 600;
              }
      
              .form-group {
                  margin-bottom: 22px;
              }
      
              label {
                  display: block;
                  margin-bottom: 8px;
                  font-size: 14px;
                  font-weight: 500;
                  color: #b3b3b3;
              }
      
              input[type="text"], input[type="file"] {
                  width: 100%;
                  padding: 12px 16px;
                  border: 1px solid var(--border-color);
                  border-radius: 8px;
                  background-color: var(--input-bg);
                  color: #ffffff;
                  box-sizing: border-box;
                  font-size: 14px;
                  transition: all 0.3s ease;
              }
      
              input[type="text"]:focus {
                  outline: none;
                  border-color: var(--primary-color);
                  box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.15);
              }
      
              /* עיצוב משופר לשדה בחירת קובץ */
              input[type="file"]::file-selector-button {
                  padding: 8px 16px;
                  margin-inline-end: 12px;
                  border-radius: 6px;
                  border: none;
                  background-color: #333;
                  color: #fff;
                  cursor: pointer;
                  font-weight: 500;
                  transition: background-color 0.2s;
              }
      
              input[type="file"]::file-selector-button:hover {
                  background-color: #444;
              }
      
              .input-group {
                  display: flex;
                  align-items: stretch;
              }
      
              .prefix {
                  background-color: #333;
                  padding: 12px 16px;
                  border: 1px solid var(--border-color);
                  border-left: none;
                  border-radius: 0 8px 8px 0;
                  color: #aaa;
                  font-size: 14px;
                  display: flex;
                  align-items: center;
                  user-select: none;
              }
      
              #folder {
                  border-radius: 8px 0 0 8px;
              }
      
              button {
                  width: 100%;
                  padding: 14px;
                  background-color: var(--primary-color);
                  color: white;
                  border: none;
                  border-radius: 8px;
                  font-size: 16px;
                  font-weight: bold;
                  cursor: pointer;
                  margin-top: 10px;
                  transition: background-color 0.3s, transform 0.1s;
              }
      
              button:hover:not(:disabled) {
                  background-color: var(--hover-color);
              }
      
              button:active:not(:disabled) {
                  transform: scale(0.98);
              }
      
              button:disabled {
                  background-color: #555;
                  cursor: not-allowed;
                  opacity: 0.8;
              }
      
              #status {
                  margin-top: 25px;
                  padding: 15px;
                  border-radius: 8px;
                  background-color: var(--input-bg);
                  min-height: 24px;
                  white-space: pre-wrap;
                  font-size: 14px;
                  line-height: 1.5;
                  border-right: 4px solid var(--primary-color);
                  display: none;
              }
      
              .footer {
                  margin-top: 30px;
                  font-size: 14px;
                  color: #888;
                  text-align: center;
                  opacity: 0.8;
              }
          </style>
      </head>
      <body>
          <div class="container">
              <h1>העלאת קבצים וכותרת שמע</h1>
              <form id="uploadForm">
                  <div class="form-group">
                      <label for="token">טוקן התחברות (נשמר אוטומטית):</label>
                      <input type="text" id="token" placeholder="077000000:1234" required>
                  </div>
                  
                  <div class="form-group">
                      <label for="folder">נתיב השלוחה (מספר השלוחה בלבד):</label>
                      <div class="input-group">
                          <span class="prefix" dir="ltr">ivr2:</span>
                          <input type="text" id="folder" placeholder="1/2/3" required dir="ltr">
                      </div>
                  </div>
      
                  <div class="form-group">
                      <label for="mainFile">קובץ הודעה ראשית (שמע):</label>
                      <input type="file" id="mainFile" accept="audio/*" required>
                  </div>
      
                  <div class="form-group">
                      <label for="titleFile">קובץ כותרת מוקלטת (שמע, יישמר כ-Title):</label>
                      <input type="file" id="titleFile" accept="audio/*" required>
                  </div>
      
                  <button type="submit" id="submitBtn">העלה למערכת</button>
              </form>
              <div id="status"></div>
          </div>
          
          <div class="footer">
              פותח ע"י הדיבל המעופף
          </div>
      
          <script>
              // טעינת הטוקן מהאחסון המקומי בעת טעינת הדף
              document.addEventListener('DOMContentLoaded', () => {
                  const savedToken = localStorage.getItem('yemot_token');
                  if (savedToken) {
                      document.getElementById('token').value = savedToken;
                  }
              });
      
              document.getElementById('uploadForm').addEventListener('submit', async (e) => {
                  e.preventDefault();
                  
                  const submitBtn = document.getElementById('submitBtn');
                  const statusBox = document.getElementById('status');
                  const token = document.getElementById('token').value.trim();
                  let folderInput = document.getElementById('folder').value.trim();
                  const mainFile = document.getElementById('mainFile').files[0];
                  const titleFile = document.getElementById('titleFile').files[0];
      
                  if (!token || !folderInput || !mainFile || !titleFile) return;
      
                  // שמירת הטוקן בדפדפן
                  localStorage.setItem('yemot_token', token);
      
                  // ניקוי הקידומת במקרה שהמשתמש הזין אותה בטעות, והרכבת הנתיב המלא מאחורי הקלעים
                  folderInput = folderInput.replace(/^ivr2:/i, '');
                  // וידוא שהנתיב מסתיים בלוכסן כדי שהקובץ ייכנס לתוך התיקייה
                  if (!folderInput.endsWith('/')) {
                      folderInput += '/';
                  }
                  const fullPath = `ivr2:${folderInput}`;
      
                  // עדכון ממשק משתמש למצב טעינה
                  submitBtn.disabled = true;
                  submitBtn.innerText = 'מעלה נתונים...';
                  statusBox.style.display = 'block';
                  statusBox.style.borderRightColor = '#f39c12';
                  statusBox.innerText = 'מתחיל בהעלאת הקובץ הראשי...';
      
                  // שלב 1: העלאת הקובץ הראשי עם מספור והמרה
                  const mainFormData = new FormData();
                  mainFormData.append('token', token);
                  mainFormData.append('path', fullPath);
                  mainFormData.append('convertAudio', '1');
                  mainFormData.append('autoNumbering', '1');
                  mainFormData.append('file', mainFile);
      
                  try {
                      const mainRes = await fetch('https://www.call2all.co.il/ym/api/UploadFile', {
                          method: 'POST',
                          body: mainFormData
                      });
                      
                      const mainJson = await mainRes.json();
                      
                      if (mainJson.responseStatus === 'ERROR' || !mainJson.path) {
                          throw new Error(mainJson.message || 'אירעה שגיאה בהעלאת הקובץ הראשי.');
                      }
      
                      const uploadedPath = mainJson.path;
                      statusBox.innerText = `הקובץ הראשי נקלט: ${uploadedPath}\nמעלה את הקלטת הכותרת...`;
      
                      // חילוץ המספר הסידורי שנוצר והוספת "-Title" לשם הקובץ החדש
                      const basePath = uploadedPath.substring(0, uploadedPath.lastIndexOf('.'));
                      const titlePath = basePath + '-Title.wav';
      
                      // שלב 2: העלאת קובץ הכותרת לאותו נתיב עם סיומת Title והמרה לשמע
                      const titleFormData = new FormData();
                      titleFormData.append('token', token);
                      titleFormData.append('path', titlePath);
                      titleFormData.append('convertAudio', '1'); 
                      titleFormData.append('file', titleFile);
      
                      const titleRes = await fetch('https://www.call2all.co.il/ym/api/UploadFile', {
                          method: 'POST',
                          body: titleFormData
                      });
      
                      const titleJson = await titleRes.json();
      
                      if (titleJson.responseStatus === 'ERROR') {
                          throw new Error(titleJson.message || 'אירעה שגיאה בהעלאת קובץ הכותרת.');
                      }
      
                      statusBox.style.borderRightColor = '#2ecc71';
                      statusBox.innerText = `התהליך הושלם בהצלחה!\nנתיב שמע מרכזי: ${uploadedPath}\nנתיב כותרת: ${titlePath}`;
      
                  } catch (error) {
                      statusBox.style.borderRightColor = '#e74c3c';
                      statusBox.innerText = `שגיאה בתהליך: ${error.message}`;
                  } finally {
                      // החזרת הכפתור למצב פעיל בסיום
                      submitBtn.disabled = false;
                      submitBtn.innerText = 'העלה למערכת';
                      
                      // איפוס שדות הקבצים כדי לאפשר העלאה נוספת בקלות
                      document.getElementById('mainFile').value = '';
                      document.getElementById('titleFile').value = '';
                  }
              });
          </script>
      </body>
      </html>
      

      להורדה - יש למחוק מהסיומת את "מיותר"

      ה תגובה 1 תגובה אחרונה תגובה ציטוט 2
      • ה הדיבל המעופף העביר נושא זה מ-הסברים מסודרים ממשתמשים
      • ה מחובר
        הדיבל המעופף @הדיבל המעופף
        נערך לאחרונה על ידי

        קובץ עם שליחת צינתוק (לא נבדק)

        ‏‏להורדה - יש למחוק מהסיומת את "מיותר"

        תגובה 1 תגובה אחרונה תגובה ציטוט 1

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

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

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

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