מדריך העלאת קבצים לשרת FTP במהירות

אתר, בעיקר אתר המבוסס על WordPress או מערכת דומה, מורכב מאלפי קבצים קטנים. העתקה של קבצים היא איטית וזאת משום שבמעבר כל קובץ קורה התהליך הבא: – הלקוח מתחבר לשרת FTP (מספר הודעות נשלחות) – קובץ בודד עובר – הלקוח מתנתק (מספר הודעות נשלחות) ולכן גם קובץ טקסט קצר שיכול להישלח בהודעה בודדת נשלח במספר הודעות. דרך אחת להתגבר על המכשול היא שימוש בקובץ zip, שיאגד את כל אלפי הקבצים בקובץ אחד. בהנחה שיש לך רק גישה ל FTP, לא תוכל באופן פשוט לפתוח קובץ zip. ולכן יצרנו סקריפט PHP המאפשר פתיחת קבצי zip בשרת. דרישות: – גרסת PHP מעל 5.2 – אפשרות לשנות הרשאות של תיקייה

הנחיות: 1. צור קובץ zip של האתר. 2. העלה את קובץ ה zip, קבצי ה form.php וכן קובץ ה unzip.php **** לתיקייה אחת. 3. תשנה את ההרשאות של התיקייה אליה העלת את קובץ ה zip ראשית רשום את ההרשאות כדי שתוכל לשחזר אותן לאחר מכן. אם אתה משתמש ב-FTP דרך תוכנה גרפית, חפש אפשרות "File permissions" ותאפשר כתיבה לתיקייה המכילה את הקובץ zip. אם אתה משתמש בשורת פקודה, תכתוב: "chmod 777 directory" כאשר directory היא התיקייה המכילה את הקובץ zip. 4. גש לקובץ form.php ובחר את קובץ ה zip שלך. 5. אם העמוד הבא אומר "Extracting…Done!", הצלחת. 6. שחזר את ההרשאות לתיקייה.

קובץ unzip.php ****(שיהיה גם לינק, שיהיה syntax highlighting):

<?php
$filename = $_GET["dropdown"];
$directory = getcwd();                  // current working directory
$files = scandir($directory);           // array of files in $directory

if (in_array($filename, $files) && file_tests($filename)) {
  // if file exists in the directory
  // prevents the user from injecting a filename
  // in a different directory
  $zip = new ZipArchive;
  if ($zip->open($filename)) {
    // file can be opened
    echo 'Extracting...';
    if ($zip->extractTo($directory)) {
      // extract succeeded
      echo 'Done!';
    } else {
      // extract failed
      echo 'Extract failed';
    }
  } else {
    // cannot open file
    echo 'File cannot be opened';
  }
  $zip->close();
} else {
  // file is not in directory (or '.', '..')
  echo 'File ' . $filename . ' does not exist in ' . $directory;
}

function file_tests($filename) {
  return (($filename != '.') &&
          ($filename != '..'));
}
?>

קובץ form.php ****(שיהיה גם לינק, שיהיה syntax highlighting):

<?php
$directory = getcwd();                  // "current working directory"
$files = scandir($directory);           // array of files in $directory

function filename_to_select_option($filename) {
  echo "<option value" . $filename . ">" . $filename .  "</option>";
}
?>
<html>
  <body>
    <form action="unzip.php" method="GET">
      <select name="dropdown">
        <?php array_map("filename_to_select_option", $files); ?>
      </select>
      <input type="submit">
    </form>
  </body>
</html>

 

 

קבצים מצורפים:

unzip.php form.php

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *