/var/www/(Del)hsihk.com/wp-content/plugins/backupbuddy/controllers/ajax/restore_file_view.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
if ( ! is_admin() ) { die( 'Access denied.' ); }

// File viewer (view content only) in the file restore page.
/* restore_file_view()
*
* View contents of a file (text) that is inside a zip archive.
*
*/

pb_backupbuddy::$ui->ajax_headertruefalse ); // js, no padding

$archive_file pb_backupbuddy::_GET'archive' ); // archive to extract from.
$file pb_backupbuddy::_GET'file' ); // file to extract.
$serial backupbuddy_core::get_serial_from_file$archive_file ); // serial of archive.
$temp_file uniqid(); // temp filename to extract into.

require_once( pb_backupbuddy::plugin_path() . '/lib/zipbuddy/zipbuddy.php' );
$zipbuddy = new pluginbuddy_zipbuddybackupbuddy_core::getBackupDirectory() );

// Calculate temp directory & lock it down.
$temp_dir get_temp_dir();
$destination $temp_dir 'backupbuddy-' $serial;
if ( ( ( ! 
file_exists$destination ) ) && ( false === mkdir$destination ) ) ) ) {
    
$error 'Error #458485945b: Unable to create temporary location.';
    
pb_backupbuddy::status'error'$error );
    die( 
$error );
}

// If temp directory is within webroot then lock it down.
$temp_dir str_replace'\\''/'$temp_dir ); // Normalize for Windows.
$temp_dir rtrim$temp_dir'/\\' ) . '/'// Enforce single trailing slash.
if ( FALSE !== stristr$temp_dirABSPATH ) ) { // Temp dir is within webroot.
    
pb_backupbuddy::anti_directory_browsing$destination );
}
unset( 
$temp_dir );

$message 'Extracting "' $file '" from archive "' $archive_file '" into temporary file "' $destination '". ';
echo 
'<!-- ';
pb_backupbuddy::status'details'$message );
echo 
$message;


$extractions = array( $file => $temp_file );
$extract_result $zipbuddy->extractbackupbuddy_core::getBackupDirectory() . $archive_file$destination$extractions );
if ( 
false === $extract_result ) { // failed.
    
echo ' -->';
    
$error 'Error #584984458. Unable to extract.';
    
pb_backupbuddy::status'error'$error );
    die( 
$error );
} else { 
// success.
    
_e'Success.''it-l10n-backupbuddy' );
    echo 
' -->';
    
?>
    <textarea readonly="readonly" wrap="off" style="width: 100%; min-height: 175px; height: 100%; margin: 0;"><?php echo file_get_contents$destination '/' $temp_file ); ?></textarea>
    <?php
    
//unlink( $destination . '/' . $temp_file );
}

// Try to cleanup.
if ( file_exists$destination ) ) {
    if ( 
false === pb_backupbuddy::$filesystem->unlink_recursive$destination ) ) {
        
pb_backupbuddy::status'details''Unable to delete temporary holding directory `' $destination '`.' );
    } else {
        
pb_backupbuddy::status'details''Cleaned up temporary files.' );
    }
}

pb_backupbuddy::$ui->ajax_footer();
die();