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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. העלאת קבצים PHP

העלאת קבצים PHP

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

    לקוד המשופר באדיבות ר' @dovid, לחצו כאן

    אני צריך קוד PHP להעלאת קבצים לשרת, מצאתי כמה כאלה, אבל הם לא מתאימים לי מכמה סיבות.

    א. אני רוצה ללא הגבלת גודל או הגבלת גודל של 2 GB וכל מה שמצאתי מוגבלים בכמה עשרות מגה.
    ב. אני רוצה שהוא ייתן לי בסוף ההעלאה קישור להורדה.

    כיום אני משתמש בקוד הזה:

    PHP

    <?php 
    $dir = 'C:/upload/'; 
    $url = 'http://Yourdomain/upload/'; 
    
    if($_FILES['myfile']['error'] != 0) { 
        echo "שגיאה בשליחת הקובץ לשרת, קוד שגיאה: {$_FILES['myfile']['error']}"; 
    } else { 
    
        if(move_uploaded_file($_FILES['myfile']['tmp_name'], $dir . $_FILES['myfile']['name'])) { 
            echo "היי, הקובץ הועלה בהצלחה!! 
            <br /> 
            :קח מכאן את הקישור הישיר לקובץ 
            <a href='{$url}{$_FILES['myfile']['name']}'>{$url}{$_FILES['myfile']['name']}<a/>"; 
        } 
        else { 
            echo 'שגיאה בהעברת הקובץ מתיקיית הקבצים הזמניים בשרת למיקום הסופי.'; 
        } 
    
    } 
    ?> 
    

    HTML

    	<body> <form action="up.php" method="post" enctype="multipart/form-data">
    <br/>
    	בחר קובץ: <input type="file" name="myfile" /><br/><br/>
    	<input type="submit" value="שלח קובץ" />
    

    רק מה, הוא מוגבל בגודל הקובץ, והוא לא תומך בהעלאת מס' קבצים יחד... יש דרך לפתור את זה?

    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
    הלינקיה שלי https://abaye.co/link.html

    תגובה 1 תגובה אחרונה
    0
    • A מנותק
      A מנותק
      aaron
      כתב ב נערך לאחרונה על ידי
      #2

      ההגבלה על גודל הקובץ היא קודם כל כי אתה מעלה את הקובץ כולו בפעם אחת.
      יש מגבלה על גודל הראם, אלא אם כן אתה מזרים ישירות את הסטרים לקובץ. לא מכיר מספיק PHP בשביל לדעת האם זה קיים..

      הייתי מציע לך להשתמש בפרוטוקול של tus.io, הרעיון הוא האפשרות לחזור ולהמשיך העלאה של קובץ. והקובץ נשלח בחלקים קטנים. זה גם מקטין את הסיכון אבטחה שקיים כשמאפשרים בקשות POST גדולות.

      https://github.com/ankitpokhrel/tus-php זה יישום של הפרוטוקול הזה בPHP.
      לפרונטאנד יש פתרונות כמו https://uppy.io

      aaron.tchumim@gmail.com
      Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

      ווצאפ API - תיעוד שירות API לא רשמי.

      תגובה 1 תגובה אחרונה
      1
      • chagoldC מנותק
        chagoldC מנותק
        chagold
        כתב ב נערך לאחרונה על ידי
        #3

        גדלי הקובץ מוגדרים ב- PHP.ini
        https://stackoverflow.com/questions/2184513/change-the-maximum-upload-file-size

        אבייא 3 תגובות תגובה אחרונה
        1
        • אבייא מנותק
          אבייא מנותק
          אביי
          השיב לchagold ב נערך לאחרונה על ידי
          #4

          @chagold אני יודע, אבל משום מה גם אחרי שהגדרתי שם 4000 מגה זה לא עזר...

          ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
          הלינקיה שלי https://abaye.co/link.html

          תגובה 1 תגובה אחרונה
          0
          • אבייא מנותק
            אבייא מנותק
            אביי
            השיב לchagold ב נערך לאחרונה על ידי
            #5

            @chagold היי, עכשיו ניסיתי שוב לשנות, ומצאתי 3 מקומות שמתייחסים לגודל הקובץ או הפוסט ב php.ini שינית את כולם, וזה עובד ב"ה... תודה!

            ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
            הלינקיה שלי https://abaye.co/link.html

            תגובה 1 תגובה אחרונה
            0
            • אבייא מנותק
              אבייא מנותק
              אביי
              השיב לchagold ב נערך לאחרונה על ידי אביי
              #6

              @chagold יש לך מושג איך אני מאפשר העלאה של מס' קבצים בו זמנית?
              כי יש לי מודול כזה אבל הוא לא נותן לי קישור לקובץ בסוף התהליך, אבל כשניסיתי לעשות הכלאה בין שתי המודולים הוא נותן שגיאה.

              ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
              הלינקיה שלי https://abaye.co/link.html

              תגובה 1 תגובה אחרונה
              0
              • chagoldC מנותק
                chagoldC מנותק
                chagold
                כתב ב נערך לאחרונה על ידי
                #7

                לא אמור להיות שגיאה בהעלאת מס' קבצים באותו קוד.

                תעלה את נתוני הקוד והשגיאה.

                אבייא 2 תגובות תגובה אחרונה
                0
                • אבייא מנותק
                  אבייא מנותק
                  אביי
                  השיב לchagold ב נערך לאחרונה על ידי
                  #8

                  @chagold בקוד ההוא באמת אין שגיאה, רק אני רוצה שהקוד הזה שהבאתי למעלה, יוכל להעלות מס' קבצים, זה אפשרי?

                  ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
                  הלינקיה שלי https://abaye.co/link.html

                  אבייא תגובה 1 תגובה אחרונה
                  0
                  • אבייא מנותק
                    אבייא מנותק
                    אביי
                    השיב לאביי ב נערך לאחרונה על ידי
                    #9

                    זה הקוד שמאפשר מס' קבצים:

                    <form action="action.php" method="post" enctype="multipart/form-data">
                    	<input type="file" name="upload[]" multiple="multiple">
                    	<input type="submit" value="submit" >
                    </form>
                    

                    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
                    הלינקיה שלי https://abaye.co/link.html

                    תגובה 1 תגובה אחרונה
                    0
                    • אבייא מנותק
                      אבייא מנותק
                      אביי
                      השיב לchagold ב נערך לאחרונה על ידי
                      #10

                      @chagold זה קוד ששילבתי בין שני המנגנונים, נוא מתחיל להעלות עד שבשלב מסויים הוא מציג את השגיאות שלמטה.

                      <body> <form action="up.php" method="post" enctype="multipart/form-data">
                      
                      <br/>
                      	<input type="file" name="upload[]" multiple="multiple" /><br/><br/>
                      	<input type="submit" value="שלח קובץ" />
                      <br/>
                      	</form>
                      
                      
                      Notice: Undefined index: myfile in C:\xampp\htdocs\tool\up\up.php on line 5
                      
                      Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\tool\up\up.php on line 5
                      
                      Notice: Undefined index: myfile in C:\xampp\htdocs\tool\up\up.php on line 9
                      
                      Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\tool\up\up.php on line 9
                      
                      Notice: Undefined index: myfile in C:\xampp\htdocs\tool\up\up.php on line 9
                      
                      Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\tool\up\up.php on line 9
                      שגיאה בהעברת הקובץ מתיקיית הקבצים הזמניים בשרת למיקום הסופי.
                      

                      ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
                      הלינקיה שלי https://abaye.co/link.html

                      תגובה 1 תגובה אחרונה
                      0
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        כתב ב נערך לאחרונה על ידי
                        #11

                        https://tchumim.com/topic/870

                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                        אבייא תגובה 1 תגובה אחרונה
                        1
                        • אבייא מנותק
                          אבייא מנותק
                          אביי
                          השיב לdovid ב נערך לאחרונה על ידי
                          #12

                          @dovid הקוד לבחירת הקובץ שם הוא אותו קוד, והוא עובד יחד עם המערך העלאה ששם, אבל אני רוצה להשתמש במערך ההעלאה שהבאתי כאן למעלה, כי הוא נותן לי קישור לקובץ בסיום ההעלאה, אך השילוב ביניהם נתקע משהו, הקבצים עולים לגמרי, אבל בסוף ההעלאה יש איזה שגיאה, ומוצגות השגיאות שלעיל.

                          ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
                          הלינקיה שלי https://abaye.co/link.html

                          dovidD תגובה 1 תגובה אחרונה
                          0
                          • dovidD מנותק
                            dovidD מנותק
                            dovid ניהול
                            השיב לאביי ב נערך לאחרונה על ידי
                            #13

                            @אביי הקישור יהיה לקובץ הראשון? לאחרון? או יחזיר רשימת קישורים?
                            כמו"כ שים פה את הקוד המלא של הPHP.

                            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                            בכל נושא אפשר ליצור קשר dovid@tchumim.com

                            אבייא תגובה 1 תגובה אחרונה
                            1
                            • chagoldC מנותק
                              chagoldC מנותק
                              chagold
                              כתב ב נערך לאחרונה על ידי chagold
                              #14

                              השגיאות מציינות שהכתובת שאליה שלחת את הקבצים אינה קיימת או שאין לה גישה.
                              האם קובץ אחד הוא כן מעלה? כמו"כ, יתכן שאתה מעלה את 2 הקבצים באותו שם והוא כותב אחד ולא נותן לשני לעלות על אותו שם?
                              אם כן, תשנה את שם הקובץ לשם רנדומלי כלשהו.

                              תגובה 1 תגובה אחרונה
                              1
                              • אבייא מנותק
                                אבייא מנותק
                                אביי
                                השיב לdovid ב נערך לאחרונה על ידי
                                #15

                                @dovid בפוסט הראשון יש את המערך שמשמש אותי כיום להעלאת קובץ אחד, ובקישור שהבאת נמצא הקוד להעלאת מס' קבצים, אני רוצה שהקוד שהבאתי בפוסט הראשון, ישמש אותי להעלאת קבצים מרובים, ויחזיר קישור נפרד לכל אחד ואחד מהקבצים.

                                נ.ב. תודה על כל העזרה @dovid @chagold

                                ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
                                הלינקיה שלי https://abaye.co/link.html

                                dovidD תגובה 1 תגובה אחרונה
                                0
                                • dovidD מנותק
                                  dovidD מנותק
                                  dovid ניהול
                                  השיב לאביי ב נערך לאחרונה על ידי
                                  #16

                                  @אביי אמרת שעשית ניסיון לשלב והוא לא צלח, אבל לא הבאת כזה ניסיון.
                                  הנה שילוב בקוד:

                                  <?php
                                  
                                  $dir =  $_SERVER['DOCUMENT_ROOT'] . "\\uploads\\";
                                  $url = '/uploads/';
                                  
                                  
                                  for ($i = 0; $i < count($_FILES['upload']['name']); $i++) {
                                      $fileName = $_FILES['upload']['name'][$i];
                                      $tmpFilePath = $_FILES['upload']['tmp_name'][$i];
                                      $err = $_FILES['upload']['error'][$i];
                                  
                                      echo "<div> קובץ: $fileName";
                                  
                                      if ($err != 0) {
                                          echo "שגיאה בשליחת הקובץ לשרת, קוד שגיאה: $err";
                                      } else {
                                          if (move_uploaded_file($tmpFilePath, $dir . $fileName)) {
                                              echo "
                                                 היי, הקובץ הועלה בהצלחה!! 
                                                  <br /> 
                                                 :קח מכאן את הקישור הישיר לקובץ 
                                                  <a href='{$url}{$fileName}'>$fileName<a/>
                                              ";
                                          } else {
                                              echo 'שגיאה בהעברת הקובץ מתיקיית הקבצים הזמניים בשרת למיקום הסופי.';
                                          }
                                      }
                                      echo "</div>";
                                  
                                  }
                                  
                                  
                                  

                                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                  אבייא תגובה 1 תגובה אחרונה
                                  2
                                  • אבייא מנותק
                                    אבייא מנותק
                                    אביי
                                    השיב לdovid ב נערך לאחרונה על ידי
                                    #17

                                    @dovid אמר בהעלאת קבצים PHP:

                                    הוא מחזיר את אותה השגיאה, הוא מעלה את הקבצים וכשהוא מסיים (לכאו' כשהוא רוצה להעביר את זה מהזמני לתיקיה המוגדרת,) הוא מחזיר שגיאה, וטוען לבעיה בשורה 17.

                                        if (move_uploaded_file($tmpFilePath, $dir . $fileName)) {
                                    

                                    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
                                    הלינקיה שלי https://abaye.co/link.html

                                    dovidD תגובה 1 תגובה אחרונה
                                    0
                                    • dovidD מנותק
                                      dovidD מנותק
                                      dovid ניהול
                                      השיב לאביי ב נערך לאחרונה על ידי dovid
                                      #18

                                      @אביי
                                      תביא לפה את כל הקוד שכתבת להעלאה בPHP ולHTML + השגיאות.

                                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                      אבייא 2 תגובות תגובה אחרונה
                                      1
                                      • אבייא מנותק
                                        אבייא מנותק
                                        אביי
                                        השיב לdovid ב נערך לאחרונה על ידי
                                        #19

                                        @dovid זה הסתדר! הקוד שלך עובד טוב הבעיה הייתה בי!
                                        לא הגדרתי נכון את המיקום של התיקייה להעלאה, עכשיו שמתי לב לזה וזה עובד מצוין, תודה רבה!

                                        אני מעלה את הקוד השלם, לכאן:
                                        html לבחירת הקבצים, (ניתן לבחור כמה, אין מגבלת כמות)

                                        <form action="upload1.php" method="post" enctype="multipart/form-data">
                                        	<input type="file" name="upload[]" multiple="multiple">
                                        	<input type="submit" value="העלה קבצים" >
                                        </form>
                                        

                                        כאשר "upload1.php" מגדיר את שם הקובץ שמכיל את מערך ההעלאה עצמו.

                                        <?php
                                         
                                        $dir =  $_SERVER['DOCUMENT_ROOT'] . "https://tchumim.com/";
                                        $url = 'https://tchumim.com/';
                                         
                                         
                                        for ($i = 0; $i < count($_FILES['upload']['name']); $i++) {
                                            $fileName = $_FILES['upload']['name'][$i];
                                            $tmpFilePath = $_FILES['upload']['tmp_name'][$i];
                                            $err = $_FILES['upload']['error'][$i];
                                         
                                            echo "<div> קובץ: $fileName";
                                         
                                            if ($err != 0) {
                                                echo "שגיאה בשליחת הקובץ לשרת, קוד שגיאה: $err";
                                            } else {
                                                if (move_uploaded_file($tmpFilePath, $dir . $fileName)) {
                                                    echo "
                                                       היי, הקובץ הועלה בהצלחה!! 
                                                        <br /> 
                                                       :קח מכאן את הקישור הישיר לקובץ 
                                                        <a href='{$url}{$fileName}'>$fileName<a/>
                                                    ";
                                                } else {
                                                    echo 'שגיאה בהעברת הקובץ מתיקיית הקבצים הזמניים בשרת למיקום הסופי.';
                                                }
                                            }
                                            echo "</div>";
                                         
                                        }
                                         
                                        

                                        כאשר במקום "https://tchumim.com/" יש לשים את הקישור לתיקיית האיחסון של הקובץ. (בשורה העליונה כנתיב מספריית המחשב, ובתחתונה עם הדומיין של האתר.

                                        ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
                                        הלינקיה שלי https://abaye.co/link.html

                                        תגובה 1 תגובה אחרונה
                                        0
                                        • אבייא מנותק
                                          אבייא מנותק
                                          אביי
                                          השיב לdovid ב נערך לאחרונה על ידי
                                          #20

                                          @dovid וואלה, כבר לא נעים לי... אבל יש אפשרות להגדיר שאני יוכל גם לבחור תיקייה, ולהעלות אותה כתיקייה?

                                          ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
                                          הלינקיה שלי https://abaye.co/link.html

                                          תגובה 1 תגובה אחרונה
                                          0

                                          • 1
                                          • 2
                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

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