ThemeFuse/Unyson-Backups-Extension

Demo content install issue

DevWael opened this issue · 32 comments

hello guys,
i'm facing this error while i'm trying to install demo content
Invalid byte position (current: 0, received: 0)

this is the code i'm using in my functions.php

add_filter( 'fw:ext:backups-demo:demos', 'window_demo_content' );
function window_demo_content( $demos ) {
    $demos_array = array(
        'news-demo'  => array(
            'title'        => esc_html__( 'News Demo', 'window' ),
            'screenshot'   => 'http://bbioon.com/window/demo/content/news.png',
            'preview_link' => 'http://bbioon.com/window/news'
        ),
        'sport-demo' => array(
            'title'        => esc_html__( 'Sport Demo', 'window' ),
            'screenshot'   => 'http://bbioon.com/window/demo/content/sport.png',
            'preview_link' => 'http://bbioon.com/window/sport'
        ),
        'blog-demo'  => array(
            'title'        => esc_html__( 'Blog Demo', 'window' ),
            'screenshot'   => 'http://bbioon.com/window/demo/content/blog.png',
            'preview_link' => 'http://bbioon.com/window/blog'
        ),
    );

    $download_url = 'http://www.bbioon.com/window/demo_content/';

    foreach ($demos_array as $id => $data) {
        $demo = new FW_Ext_Backups_Demo($id, 'piecemeal', array(
            'url' => $download_url,
            'file_id' => $id,
        ));
        $demo->set_title($data['title']);
        $demo->set_screenshot($data['screenshot']);
        $demo->set_preview_link($data['preview_link']);

        $demos[ $demo->get_id() ] = $demo;

        unset($demo);
    }

    return $demos;
}

and this is the code i'm using in config.php

$cfg = array(
    'files' => array(
        'news-demo'  => dirname(__FILE__) . '/content/news.zip',
        'sport-demo' => dirname(__FILE__) . '/content/sport.zip',
        'blog-demo'  => dirname(__FILE__) . '/content/blog.zip',
    ),
);

i can provide you with any login data that you need

Your download link is 404 http://www.bbioon.com/window/demos/

It should be an empty page with 400 error code, like this

screenshot from 2016-07-27 11-19-04

i moved the url to http://www.bbioon.com/window/demo_content/

it gives me an empty page

what should i do?

@moldcraft i need help here

this is the error

It works http://www.bbioon.com/window/demo_content/?id=news-demo&position=0

Maybe you have antivirus that is blocking requests to your site (if it is on localhost).

If the site is live, can you send me admin/ftp access to moldcraft[at]email.com?

Or you can debug this script on your sever to check where the execution is not going well.

i solved the error Invalid byte position (current: 0, received: 0)
i tried to upgrade php version from 5.4 to 5.6 and it worked

but i'm getting a new error Zip open failed (code 19). Please try again

i tried with two different zip files

what is the wrong with this?

this is my activated php extensions

I don't know, I need to inspect your code to find the problem.

i sent you an email with the access details.

thank you.

Thanks, I will take a look in a few hours.

Hello,

It took me a lot of time to investigate that issue, so I will inspect this issue tomorrow.

it still give me the error Zip open failed (code 19). Please try again
i tried the theme and files on another server and it gives me the same error.

i also tried another zip files, other host. i can't find the solution.

did you find any solution ? @moldcraft

Hello,

I was busy with other tasks and forgot about this, sorry.

Error code 19 means Not a zip archive

I inspected your server:

  1. I downloaded wp-content/uploads/fw-backup/tmp/piecemeal.zip

  2. I tried to open it with php

    add_action('admin_notices', function(){
        $zip = new ZipArchive();
        fw_print(
            $zip->open(
                fw_fix_path(ABSPATH) 
                .'/wp-content/uploads/fw-backup/tmp/piecemeal.zip'
            )
        );
    });

    and I get the 19 error code on both your server and my localhost.

  3. It opens on my PC with Archivator App, but I get error when I do extract.

  • Maybe the problem is in these files which contains corrupted characters in their name.
  • One time a similar problem, the problem was in Windows Archivator App, for some reason the archives created with it couldn't be opened in PHP. The solution was to create the archives for demo install with WinRar.

do you mean i have to download this archive and decompress it then compress it again with my zip archiver to .zip file ?
or to .rar file?

as you wrote above i tried to extract the news.zip on my server and compressed it again and it gives me the same error Code 19.

can you describe the solution you provided for more help?
i'm about uploading the theme to themeforest and i only have to fix this issue to create the demo content for the buyers.

Thank you for your help.

You need .zip.

  1. Can you upload to dropbox (or some similar service) your Content Backup zip and send me the download link to moldcraft[at]email.com?
  2. Have you tried to remove those files with corrupted name from the archive?

this is what i did:

  1. I downloaded the content zip file.
  2. extracted it and compressed it again and uploaded it to the server.
  3. The same error again.

i extracted the files on the server and removed 2 files:

88103  07-26-2016 03:08   f/uploads/2016/07/Window-???-news-logo-1.png
 3709  07-26-2016 03:08   f/uploads/2016/07/Window-???-news-logo.png

as you meant files with corrupted name above
and compressed the file again and still give me the error.

i have sent you the download link for the original file (without any edit).

Small notice: when i use the same file in the restore backup page it works correctly, which it means there is no issue with the file but the issue may be with the demo install system.

Inspecting... Please don't do anything on the server. I will let you know when I am done

okay...

this is the main demo http://bbioon.com/window/news i can provide you with the access information when you need it.

I compared the original news.zip and the downloaded piecemeal.zip and they differ by 3 bytes at the beginning of the file. I am trying to figure out where they come from

if you need to create a new demo content zip i can provide you with the admin access on the main demo site.

  1. I added here

    file_get_contents('http://requestb.in/...?'. http_build_query(array(
        's' => strlen($data)
    )));

    and it shows s=3000000

  2. I added here

        file_get_contents('http://requestb.in/...?'. http_build_query(array(
            's'  => strlen($response['body'])
        )));

    and it shows s=3000003.

    Also to check if the problem maybe is in wp_remote_get(), I added here

        file_get_contents('http://requestb.in/...?'. http_build_query(array(
            's' => strlen(file_get_contents(add_query_arg(
                array(
                    'id' => urlencode($args['file_id']),
                    'position' => $state['position'],
                    'size' => $state['piece_size'],
                ),
                $args['url']
            )))
        )));
    
        return new WP_Error('t', 'Test');

    and it also shows s=3000003.

So something is adding 3 bytes to server response content.


I added here

file_get_contents('http://requestb.in/...?'. http_build_query(array(
    'c' => substr(file_get_contents(add_query_arg(
        array(
            'id' => urlencode($args['file_id']),
            'position' => $state['position'],
            'size' => $state['piece_size'],
        ),
        $args['url']
    )), 0, 3)
)));

and it shows cc=%EF%BB%BF.

Google shows that others encountered this problem, and it turns out that this character sequence is related to UTF-8 BOM.


I will add a fix that removes those extra bytes.

which explains that the same file works correctly in the restore backup page and didn't work with the same file when needs to request it from the server

The release will be tomorrow ThemeFuse/Unyson-Extensions-Approval#241

So better submit your theme tomorrow in the evening when the update will be live and the TF staff will be able to test your theme without encountering this problem.

i can wait you, take your time.

thank you for the help.
Best regards...

@eyeswizard Hi, If

this Invalid byte position (current: 0, received: 0)

is your error so just check the your config.php file for proper linking your zip file. 'news-demo' => dirname(FILE) . '/content/news.zip', this is your content link so try to change "/content" to "content" no need to add "/" if your download script in "demo_content" folder. By the way, I got the same problem in my theme solved the problem by changing the path.

@moldcraft Nice one!

The release will be tomorrow ThemeFuse/Unyson-Extensions-Approval#241

So better submit your theme tomorrow in the evening when the update will be live and the TF staff will be able to test your theme without encountering this problem.

hello i am new in unyson i want to implement demo import can you help me to do this?

Hi @nobingit
Unyson framework is a great framework, but it's now discontinued project, I would suggest you to get another framework like carbonfields.net.

Hope it will be back to live again one day.

Regards.