PluginProbe
WP Database Backup – Unlimited Database & Files Backup by Backup for WP / 7.13
WP Database Backup – Unlimited Database & Files Backup by Backup for WP v7.13
7.13 7.12 trunk 1.1 2.1.1 5.9 6.0 6.1 6.10 6.11 6.12 6.12.1 6.2 6.3 6.4 6.5 6.5.1 6.6 6.7 6.8 6.9 7.0 7.0.1 7.1 7.10 All 34 releases
wp-database-backup / includes / admin / Destination / SFTP / sendaway.php

sendaway.php in WP Database Backup – Unlimited Database & Files Backup by Backup for WP 7.13, at includes/admin/Destination/SFTP/sendaway.php

60 lines 2.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5 /**
6 * Destination SFTP
7 *
8 * @package wpdbbkp
9 */
10
11 require __DIR__ . '/vendor/autoload.php';
12 use phpseclib3\Net\SFTP;
13 use phpseclib3\Crypt\PublicKeyLoader;
14
15 // Retrieve SFTP details.
16 $wpdbbkp_sftp_details = get_option( 'wp_db_backup_sftp_details', array() );
17 $wpdbbkp_host = isset( $wpdbbkp_sftp_details['host'] ) ? $wpdbbkp_sftp_details['host'] : '';
18 $wpdbbkp_port = isset( $wpdbbkp_sftp_details['port'] ) ? $wpdbbkp_sftp_details['port'] : 22;
19 $wpdbbkp_user = isset( $wpdbbkp_sftp_details['username'] ) ? $wpdbbkp_sftp_details['username'] : '';
20 $wpdbbkp_pass = isset( $wpdbbkp_sftp_details['password'] ) ? $wpdbbkp_sftp_details['password'] : '';
21 $wpdbbkp_pkey = isset( $wpdbbkp_sftp_details['sftp_key'] ) ? base64_decode( $wpdbbkp_sftp_details['sftp_key'] ) : '';
22 $wpdbbkp_key_pass = isset( $wpdbbkp_sftp_details['key_password'] ) ? $wpdbbkp_sftp_details['key_password'] : false;
23 $wpdbbkp_directory = isset( $wpdbbkp_sftp_details['directory'] ) ? $wpdbbkp_sftp_details['directory'] : '';
24 if ( '' === $wpdbbkp_directory ) {
25 $wpdbbkp_directory = '/';
26 }
27 $wpdbbkp_auth_type = isset( $wpdbbkp_sftp_details['auth_type'] ) ? $wpdbbkp_sftp_details['auth_type'] : 'password';
28
29 if ( ! empty( $wpdbbkp_host ) && ! empty( $wpdbbkp_user ) && ( ! empty( $wpdbbkp_pass ) || ( 'key' === $wpdbbkp_auth_type && ! empty( $wpdbbkp_pkey ) ) ) ) {
30 $wpdbbkp_sftp = new SFTP( $wpdbbkp_host, $wpdbbkp_port );
31
32 if ( $wpdbbkp_sftp ) {
33 // Authenticate.
34 if ( 'key' === $wpdbbkp_auth_type ) {
35 $wpdbbkp_key = PublicKeyLoader::load( $wpdbbkp_pkey, $wpdbbkp_key_pass );
36 $wpdbbkp_result = $wpdbbkp_sftp->login( $wpdbbkp_user, $wpdbbkp_key );
37 } else {
38 $wpdbbkp_result = $wpdbbkp_sftp->login( $wpdbbkp_user, $wpdbbkp_pass );
39 }
40
41 // Upload file.
42 if ( $wpdbbkp_result ) {
43 $wpdbbkp_upload_dir = wp_upload_dir();
44 $wpdbbkp_upload_dir['basedir'] = str_replace( '\\', '/', $wpdbbkp_upload_dir['basedir'] );
45 $wpdbbkp_remotefile = $wpdbbkp_directory . '/' . $wpdbbkp_filename;
46 $wpdbbkp_localfile = trailingslashit( $wpdbbkp_upload_dir['basedir'] . '/db-backup' ) . $wpdbbkp_filename;
47 $wpdbbkp_success = $wpdbbkp_sftp->put( $wpdbbkp_remotefile, $wpdbbkp_localfile, SFTP::SOURCE_LOCAL_FILE | SFTP::RESUME_START );
48
49 if ( $wpdbbkp_success ) {
50 $wpdbbkp_args[2] = $wpdbbkp_args[2] . '<br> ' . esc_html__( 'Upload Database Backup on SFTP', 'wpdbbkp' ) . ' ' . $wpdbbkp_host;
51 $wpdbbkp_args[4] .= 'SFTP, ';
52 }
53 }
54 }
55
56 if ( isset( $wpdbbkp_sftp ) && $wpdbbkp_sftp ) {
57 $wpdbbkp_sftp->disconnect();
58 }
59 }
60