Search This Blog

Showing posts with label extract. Show all posts
Showing posts with label extract. Show all posts

Friday, July 23, 2021

How to install Gnome Extensions

 Extract the downloaded file. Copy the folder to ~/.local/share/gnome-shell/extensions directory. Go to your Home directory and press Crl+H to show hidden folders. Locate .local folder here and from there, you can find your path till extensions directory. 

Once you have the files copied in the correct directory, go inside it and open metadata.json file. Look for the value of uuid. 

Make sure that the name of the extension’s folder is same as the value of uuid in the metadata.json file. If not, rename the directory to the value of this uuid.

Manually install GNOME Shell extension
Name of extension folder should be the same as uuid

Almost there! Now restart GNOME Shell. Press Alt+F2 and enter r to restart GNOME Shell.

Restart GNOME Shell
Restart GNOME Shell

Restart GNOME Tweaks tool as well. You should see the manually installed GNOME extension in the Tweak tool now. You can configure or enable the newly installed extension here.

And that’s all you need to know about installing GNOME Shell Extensions.

Remove GNOME Shell Extensions

It is totally understandable that you might want to remove an installed GNOME Shell Extension.

If you installed it via a web browser, you can go to the installed extensions section on GNOME website and remove it from there (as shown in an earlier picture).

If you installed it manually, you can remove it by deleting the extension files from ~/.local/share/gnome-shell/extensions directory.

Wednesday, April 7, 2021

Filezilla FTP zip file Uncompress / Extract

1. Copy the below code and paste it into a file and name it unzip.php

2. Copy this file to your current directory in ftp location where zip files are there. 

3. type your url/unzip.php  [ ex: infovijay.com/unzip.php ]

4. now you can see the screen like below. select the zip file and click unzip archieve. ENJOY.

tkx Andreas.



unzip.php


<?php

/**

 * The Unzipper extracts .zip or .rar archives and .gz files on webservers.

 * It's handy if you do not have shell access. E.g. if you want to upload a lot

 * of files (php framework or image collection) as an archive to save time.

 * As of version 0.1.0 it also supports creating archives.

 *

 * @author  Andreas Tasch, at[tec], attec.at

 * @license GNU GPL v3

 * @package attec.toolbox

 * @version 0.1.1

 */

define('VERSION', '0.1.1');


$timestart = microtime(TRUE);

$GLOBALS['status'] = array();


$unzipper = new Unzipper;

if (isset($_POST['dounzip'])) {

  // Check if an archive was selected for unzipping.

  $archive = isset($_POST['zipfile']) ? strip_tags($_POST['zipfile']) : '';

  $destination = isset($_POST['extpath']) ? strip_tags($_POST['extpath']) : '';

  $unzipper->prepareExtraction($archive, $destination);

}


if (isset($_POST['dozip'])) {

  $zippath = !empty($_POST['zippath']) ? strip_tags($_POST['zippath']) : '.';

  // Resulting zipfile e.g. zipper--2016-07-23--11-55.zip.

  $zipfile = 'zipper-' . date("Y-m-d--H-i") . '.zip';

  Zipper::zipDir($zippath, $zipfile);

}


$timeend = microtime(TRUE);

$time = round($timeend - $timestart, 4);


/**

 * Class Unzipper

 */

class Unzipper {

  public $localdir = '.';

  public $zipfiles = array();


  public function __construct() {

    // Read directory and pick .zip, .rar and .gz files.

    if ($dh = opendir($this->localdir)) {

      while (($file = readdir($dh)) !== FALSE) {

        if (pathinfo($file, PATHINFO_EXTENSION) === 'zip'

          || pathinfo($file, PATHINFO_EXTENSION) === 'gz'

          || pathinfo($file, PATHINFO_EXTENSION) === 'rar'

        ) {

          $this->zipfiles[] = $file;

        }

      }

      closedir($dh);


      if (!empty($this->zipfiles)) {

        $GLOBALS['status'] = array('info' => '.zip or .gz or .rar files found, ready for extraction');

      }

      else {

        $GLOBALS['status'] = array('info' => 'No .zip or .gz or rar files found. So only zipping functionality available.');

      }

    }

  }


  /**

   * Prepare and check zipfile for extraction.

   *

   * @param string $archive

   *   The archive name including file extension. E.g. my_archive.zip.

   * @param string $destination

   *   The relative destination path where to extract files.

   */

  public function prepareExtraction($archive, $destination = '') {

    // Determine paths.

    if (empty($destination)) {

      $extpath = $this->localdir;

    }

    else {

      $extpath = $this->localdir . '/' . $destination;

      // Todo: move this to extraction function.

      if (!is_dir($extpath)) {

        mkdir($extpath);

      }

    }

    // Only local existing archives are allowed to be extracted.

    if (in_array($archive, $this->zipfiles)) {

      self::extract($archive, $extpath);

    }

  }


  /**

   * Checks file extension and calls suitable extractor functions.

   *

   * @param string $archive

   *   The archive name including file extension. E.g. my_archive.zip.

   * @param string $destination

   *   The relative destination path where to extract files.

   */

  public static function extract($archive, $destination) {

    $ext = pathinfo($archive, PATHINFO_EXTENSION);

    switch ($ext) {

      case 'zip':

        self::extractZipArchive($archive, $destination);

        break;

      case 'gz':

        self::extractGzipFile($archive, $destination);

        break;

      case 'rar':

        self::extractRarArchive($archive, $destination);

        break;

    }


  }


  /**

   * Decompress/extract a zip archive using ZipArchive.

   *

   * @param $archive

   * @param $destination

   */

  public static function extractZipArchive($archive, $destination) {

    // Check if webserver supports unzipping.

    if (!class_exists('ZipArchive')) {

      $GLOBALS['status'] = array('error' => 'Error: Your PHP version does not support unzip functionality.');

      return;

    }


    $zip = new ZipArchive;


    // Check if archive is readable.

    if ($zip->open($archive) === TRUE) {

      // Check if destination is writable

      if (is_writeable($destination . '/')) {

        $zip->extractTo($destination);

        $zip->close();

        $GLOBALS['status'] = array('success' => 'Files unzipped successfully');

      }

      else {

        $GLOBALS['status'] = array('error' => 'Error: Directory not writeable by webserver.');

      }

    }

    else {

      $GLOBALS['status'] = array('error' => 'Error: Cannot read .zip archive.');

    }

  }


  /**

   * Decompress a .gz File.

   *

   * @param string $archive

   *   The archive name including file extension. E.g. my_archive.zip.

   * @param string $destination

   *   The relative destination path where to extract files.

   */

  public static function extractGzipFile($archive, $destination) {

    // Check if zlib is enabled

    if (!function_exists('gzopen')) {

      $GLOBALS['status'] = array('error' => 'Error: Your PHP has no zlib support enabled.');

      return;

    }


    $filename = pathinfo($archive, PATHINFO_FILENAME);

    $gzipped = gzopen($archive, "rb");

    $file = fopen($destination . '/' . $filename, "w");


    while ($string = gzread($gzipped, 4096)) {

      fwrite($file, $string, strlen($string));

    }

    gzclose($gzipped);

    fclose($file);


    // Check if file was extracted.

    if (file_exists($destination . '/' . $filename)) {

      $GLOBALS['status'] = array('success' => 'File unzipped successfully.');


      // If we had a tar.gz file, let's extract that tar file.

      if (pathinfo($destination . '/' . $filename, PATHINFO_EXTENSION) == 'tar') {

        $phar = new PharData($destination . '/' . $filename);

        if ($phar->extractTo($destination)) {

          $GLOBALS['status'] = array('success' => 'Extracted tar.gz archive successfully.');

          // Delete .tar.

          unlink($destination . '/' . $filename);

        }

      }

    }

    else {

      $GLOBALS['status'] = array('error' => 'Error unzipping file.');

    }


  }


  /**

   * Decompress/extract a Rar archive using RarArchive.

   *

   * @param string $archive

   *   The archive name including file extension. E.g. my_archive.zip.

   * @param string $destination

   *   The relative destination path where to extract files.

   */

  public static function extractRarArchive($archive, $destination) {

    // Check if webserver supports unzipping.

    if (!class_exists('RarArchive')) {

      $GLOBALS['status'] = array('error' => 'Error: Your PHP version does not support .rar archive functionality. <a class="info" href="http://php.net/manual/en/rar.installation.php" target="_blank">How to install RarArchive</a>');

      return;

    }

    // Check if archive is readable.

    if ($rar = RarArchive::open($archive)) {

      // Check if destination is writable

      if (is_writeable($destination . '/')) {

        $entries = $rar->getEntries();

        foreach ($entries as $entry) {

          $entry->extract($destination);

        }

        $rar->close();

        $GLOBALS['status'] = array('success' => 'Files extracted successfully.');

      }

      else {

        $GLOBALS['status'] = array('error' => 'Error: Directory not writeable by webserver.');

      }

    }

    else {

      $GLOBALS['status'] = array('error' => 'Error: Cannot read .rar archive.');

    }

  }


}


/**

 * Class Zipper

 *

 * Copied and slightly modified from http://at2.php.net/manual/en/class.ziparchive.php#110719

 * @author umbalaconmeogia

 */

class Zipper {

  /**

   * Add files and sub-directories in a folder to zip file.

   *

   * @param string $folder

   *   Path to folder that should be zipped.

   *

   * @param ZipArchive $zipFile

   *   Zipfile where files end up.

   *

   * @param int $exclusiveLength

   *   Number of text to be exclusived from the file path.

   */

  private static function folderToZip($folder, &$zipFile, $exclusiveLength) {

    $handle = opendir($folder);


    while (FALSE !== $f = readdir($handle)) {

      // Check for local/parent path or zipping file itself and skip.

      if ($f != '.' && $f != '..' && $f != basename(__FILE__)) {

        $filePath = "$folder/$f";

        // Remove prefix from file path before add to zip.

        $localPath = substr($filePath, $exclusiveLength);


        if (is_file($filePath)) {

          $zipFile->addFile($filePath, $localPath);

        }

        elseif (is_dir($filePath)) {

          // Add sub-directory.

          $zipFile->addEmptyDir($localPath);

          self::folderToZip($filePath, $zipFile, $exclusiveLength);

        }

      }

    }

    closedir($handle);

  }


  /**

   * Zip a folder (including itself).

   *

   * Usage:

   *   Zipper::zipDir('path/to/sourceDir', 'path/to/out.zip');

   *

   * @param string $sourcePath

   *   Relative path of directory to be zipped.

   *

   * @param string $outZipPath

   *   Relative path of the resulting output zip file.

   */

  public static function zipDir($sourcePath, $outZipPath) {

    $pathInfo = pathinfo($sourcePath);

    $parentPath = $pathInfo['dirname'];

    $dirName = $pathInfo['basename'];


    $z = new ZipArchive();

    $z->open($outZipPath, ZipArchive::CREATE);

    $z->addEmptyDir($dirName);

    if ($sourcePath == $dirName) {

      self::folderToZip($sourcePath, $z, 0);

    }

    else {

      self::folderToZip($sourcePath, $z, strlen("$parentPath/"));

    }

    $z->close();


    $GLOBALS['status'] = array('success' => 'Successfully created archive ' . $outZipPath);

  }

}

?>


<!DOCTYPE html>

<html>

<head>

  <title>File Unzipper + Zipper</title>

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

  <style type="text/css">

    <!--

    body {

      font-family: Arial, sans-serif;

      line-height: 150%;

    }


    label {

      display: block;

      margin-top: 20px;

    }


    fieldset {

      border: 0;

      background-color: #EEE;

      margin: 10px 0 10px 0;

    }


    .select {

      padding: 5px;

      font-size: 110%;

    }


    .status {

      margin: 0;

      margin-bottom: 20px;

      padding: 10px;

      font-size: 80%;

      background: #EEE;

      border: 1px dotted #DDD;

    }


    .status--ERROR {

      background-color: red;

      color: white;

      font-size: 120%;

    }


    .status--SUCCESS {

      background-color: green;

      font-weight: bold;

      color: white;

      font-size: 120%

    }


    .small {

      font-size: 0.7rem;

      font-weight: normal;

    }


    .version {

      font-size: 80%;

    }


    .form-field {

      border: 1px solid #AAA;

      padding: 8px;

      width: 280px;

    }


    .info {

      margin-top: 0;

      font-size: 80%;

      color: #777;

    }


    .submit {

      background-color: #378de5;

      border: 0;

      color: #ffffff;

      font-size: 15px;

      padding: 10px 24px;

      margin: 20px 0 20px 0;

      text-decoration: none;

    }


    .submit:hover {

      background-color: #2c6db2;

      cursor: pointer;

    }

    -->

  </style>

</head>

<body>

<p class="status status--<?php echo strtoupper(key($GLOBALS['status'])); ?>">

  Status: <?php echo reset($GLOBALS['status']); ?><br/>

  <span class="small">Processing Time: <?php echo $time; ?> seconds</span>

</p>

<form action="" method="POST">

  <fieldset>

    <h1>Archive Unzipper</h1>

    <label for="zipfile">Select .zip or .rar archive or .gz file you want to extract:</label>

    <select name="zipfile" size="1" class="select">

      <?php foreach ($unzipper->zipfiles as $zip) {

        echo "<option>$zip</option>";

      }

      ?>

    </select>

    <label for="extpath">Extraction path (optional):</label>

    <input type="text" name="extpath" class="form-field" />

    <p class="info">Enter extraction path without leading or trailing slashes (e.g. "mypath"). If left empty current directory will be used.</p>

    <input type="submit" name="dounzip" class="submit" value="Unzip Archive"/>

  </fieldset>


  <fieldset>

    <h1>Archive Zipper</h1>

    <label for="zippath">Path that should be zipped (optional):</label>

    <input type="text" name="zippath" class="form-field" />

    <p class="info">Enter path to be zipped without leading or trailing slashes (e.g. "zippath"). If left empty current directory will be used.</p>

    <input type="submit" name="dozip" class="submit" value="Zip Archive"/>

  </fieldset>

</form>

<p class="version">Unzipper version: <?php echo VERSION; ?></p>

</body>

</html>


Wednesday, February 24, 2010

How to extract SWF Flash animation from Office Excel?

Besides watching Flash videos (FLV files), you should have seen or played some Flash animation game as well (SWF files, a.k.a. Shockwave flash).

And most of the time, you received SWF Flash animation in Microsoft Office document. Very likely, the SWF animation file is embedded in Office Excel.
The reason of embedding SWF animation file in Office document is probably that majority of users is running on Windows / MS Office, and MS Office can serve as a container to run or play the SWF file.

(If you received an un-embedded SWF file, you might able to open and play the SWF animation in web browser that installed with Shockwave Flash add-on)

While the SWF flash appears as an embedded file in Office Excel or Word, you might want to extract or retrieve the embedded SWF flash for your blog.

However, there is no intrinsic or built-in function to extract / retrieve embedded SWF Flash animation from Microsoft Office document files. This is definitely true, that you won’t able to find this wanted feature in Office 2007 as well!

So, how could you do that in case you’re really wanted to do so? OK, here we go:

How to extract SWF Flash animation from Office Excel?

A simple VBA program (a.k.a Visual Basic for Applications) can extract the embedded SWF Flash animation file in less than a minute or so.

The VBA / guide has been tested in Office 2003 Professional, and it should be working perfectly in any Office versions / editions too (e.g. the latest Office 2007), provided the Office system has installed the VBA components.
  1. Open a new Microsoft Excel document,
     
  2. Click the Tools menu, Marco, Visual Basic Editor. You can also press the ALT+ F11 hotkey to bring up the VBA editor,
     
  3. While in MS Visual Basic editor, click the View Code icon on the upper-left panel,
    VBA program to extract or retrieve embedded SWF Flash animation in Excel.
     
  4. Copy the VBA program source code at below here and paste it onto the VBA source code editor,
     
  5. Press F5 to execute the VBA source code,
     
  6. An Open File dialog box prompts you to select the Office Excel document that embed the SWF Flash animation file,
     
  7. A message box appears shortly after the Excel file is selected, with a message that says where the extracted SWF Flash animation file is saved in local hard disk!

The extracted SWF Flash animation file ended with SWF file extension, and it can be open/play in a web browser with Shockwave Flash addon (e.g. Flash9e.ocx in IE7).

The VBA source code used to extract or retrieve SWF Flash animation files that embedded in Microsoft Office Excel or Word:


Sub ExtractFlash()

Dim tmpFileName As String
Dim FileNumber As Integer
Dim myFileId As Long
Dim MyFileLen As Long
Dim myIndex As Long
Dim swfFileLen As Long
Dim i As Long
Dim swfArr() As Byte
Dim myArr() As Byte

tmpFileName = Application.GetOpenFilename("MS Office File (*.doc;*.xls), *.doc;*.xls", , "Open MS Office file")

If tmpFileName = "False" Then Exit Sub

myFileId = FreeFile

Open tmpFileName For Binary As #myFileId

MyFileLen = LOF(myFileId)

ReDim myArr(MyFileLen - 1)

Get myFileId, , myArr()

Close myFileId

Application.ScreenUpdating = False

i = 0

Do While i < MyFileLen

   If myArr(i) = &H46 Then

      If myArr(i + 1) = &H57 And myArr(i + 2) = &H53 Then

         swfFileLen = CLng(&H1000000) * myArr(i + 7) + CLng(&H10000) * myArr(i + 6) + CLng(&H100) * myArr(i + 5) + myArr(i + 4)

         ReDim swfArr(swfFileLen - 1)

         For myIndex = 0 To swfFileLen - 1
            swfArr(myIndex) = myArr(i + myIndex)
            Next myIndex
         Exit Do

      Else
            i = i + 3
      End If

   Else
        i = i + 1
   End If

Loop

myFileId = FreeFile

tmpFileName = Left(tmpFileName, Len(tmpFileName) - 4) & ".swf"

Open tmpFileName For Binary As #myFileId

Put #myFileId, , swfArr

Close myFileId

MsgBox "Save the extracted SWF Flash as [ " & tmpFileName & " ]"

End Sub

Hit Counter


View My Stats