Files cannot be uploaded to SkyDrive!

Forums » Opera for Windows/Mac/Linux » Opera browser

You need to be logged in to post in the forums. If you do not have an account, please sign up first.

Go to last post

16. May 2012, 14:57:20

solarlynx

Posts: 12

Files cannot be uploaded to SkyDrive!

Hi everyone!
I love Opera but cannot upload files to SkyDrive. Who knows how to fix that? I just don't want to use other browser.

Thank you.

16. May 2012, 19:32:04

Pesala

Reclining Buddha

Posts: 25609

http://my.opera.com/community/forums/search.dml
SkinsTipsButtonsBackupSecurityUser ScriptsLanguage ForumsWiki
Browser JSChangelogsOpera NextDragonflyBugsCrashesFTP
My WebsiteMy ForumsOpera ReviewMy FontsIrfanViewSearchDownloads
Opera 11.64 on Windows XP Home • AMD64 3500 1GB RAM specs idea
Rules of Conduct and Posting RulesPlease Don't ShoutEditing PostsOpera Config Links

17. May 2012, 04:46:07

solarlynx

Posts: 12

I posted my first post after the relevant search but found no satisfactory solutions.
I ask only those who can answer exactly what I ask:

WHO KNOWS HOW TO UPLOAD FILES TO SKYDRIVE WITH OPERA?

Thank you.

17. May 2012, 05:54:20

Pesala

Reclining Buddha

Posts: 25609

There's no need to shout. You're talking to other Opera users here, and its not our fault that its currently broken. No one here knows whether its something that Opera can or should fix.

Right-click, Open with, and use Firefox or another browser to upload your files/folders. When you're done, close Firefox and continue using Opera.

You should have understood that already if you read at least one or two of the previous threads.

Skydrive say to use a supported browser, i.e. they cannot be bothered to test their site to work in Opera. No one from Opera has commented yet to my knowledge. No users came up with a work-around AFAIK.

This might be a bug in Opera — there is one that limits the maximum size of cookies — or it might be a problem with the site. If its the first, try the latest Opera Next build and see if it works with that. If not, you will have to wait.

If its the second, then contact the web site and ask them to fix it. If they don't fix it you will have to wait — either that, or spend your time digging into the site's code to see what the problem is.
SkinsTipsButtonsBackupSecurityUser ScriptsLanguage ForumsWiki
Browser JSChangelogsOpera NextDragonflyBugsCrashesFTP
My WebsiteMy ForumsOpera ReviewMy FontsIrfanViewSearchDownloads
Opera 11.64 on Windows XP Home • AMD64 3500 1GB RAM specs idea
Rules of Conduct and Posting RulesPlease Don't ShoutEditing PostsOpera Config Links

17. May 2012, 07:20:45

burnout426

Posts: 12424

In Opera's FileReader API support, there's a bug with readAsArrayBuffer(). We'll have to wait for the bug (CORE-46374) to be fixed in Opera or a workaround (browser.js for example).

17. May 2012, 09:48:34

Pesala

Reclining Buddha

Posts: 25609

Someone said that it works in Opera 11.60 — is this a regression, or has the site's code changed recently to bring out the bug in Opera?
SkinsTipsButtonsBackupSecurityUser ScriptsLanguage ForumsWiki
Browser JSChangelogsOpera NextDragonflyBugsCrashesFTP
My WebsiteMy ForumsOpera ReviewMy FontsIrfanViewSearchDownloads
Opera 11.64 on Windows XP Home • AMD64 3500 1GB RAM specs idea
Rules of Conduct and Posting RulesPlease Don't ShoutEditing PostsOpera Config Links

17. May 2012, 10:08:04

burnout426

Posts: 12424

Originally posted by Pesala:

Someone said that it works in Opera 11.60



It doesn't work in 11.60 either (just tested to make sure). User must have tried to upload a file small enough that doesn't trigger the bug.

17. May 2012, 10:45:46

solarlynx

Posts: 12

Originally posted by Pesala:

Someone said that it works in Opera 11.60 — is this a regression, or has the site's code changed recently to bring out the bug in Opera?



It have never worked in any version of Opera since SkyDrive was born.

I cannot believe that it is not possible to fix the bug. It is just developers' reluctance to solve the problem.

17. May 2012, 10:54:01

It is Opera's fault.

For anyone interested in the specific cause.
As burnout426 said, " there's a bug with readAsArrayBuffer() ".
Despite that, Opera claims to support readAsArrayBuffer(), as the following code-
<html>
<script type="text/javascript">
var a = new FileReader;
if (a.readAsArrayBuffer){
alert("readAsArrayBuffer supported"); }
else { alert("readAsArrayBuffer UNSUPPORTED"); }
</script>
</html>

returns the following output when viewed under Opera 11.6x and Opera 12.00 (I don't mean the bug isn't present in Opera 11.50 or lower, but I tested on these two versions)

readAsArrayBuffer supported

In bucket4.js in Skydrive, some part of the code is as follows,
b.isFolder=function(f)
{var a=new FileReader;a.onload=function()
{if(!d)if(!a.result&&!b.extension)f(true);else f(false)};
a.onerror=function(){if(!d)f(true)};
try{if(a.readAsArrayBuffer)a.readAsArrayBuffer(e(0,Math.min(1,c.size)));
else a.readAsBinaryString(e(0,Math.min(1,c.size)))}catch(g){f(true)}}


What happens is that Opera runs the readAsArrayBuffer() method. But due to the bug present in Opera in ReadAsArrayBuffer support, it fails.
The catch function catches the error, setting f to true; which in-turn sets b.isfolder to true - causing the "Skydrive cannot upload folders" error. (since the value of f = value of b.isfolder ; first line of code in bucket4.js mentioned in this post.)

@Pesala,
Skydrive uploading works in Opera 11.01 and lower. This is because they do not support FileReader API; and use some older method - the one used by Internet Explorer 8 and 9.

For all those who were making plain guesses that it's Microsoft's fault at http://my.opera.com/community/forums/topic.dml?id=1243532 , now tell; Microsoft has larger record of it's websites CURRENTLY (forget about those 2005, 2004 MSN, Hotmail Controversies) not working in Opera due to it being Microsoft's fault OR Opera has a larger record of breaking CURRENT Microsoft websites due to unfixed Core bugs.
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

17. May 2012, 11:02:02

burnout426

Posts: 12424

Originally posted by solarlynx:

I cannot believe that it is not possible to fix the bug.



That's good because it is possible to fix and Opera has a handle on it now. We just have to wait till a fix gets released in builds. But, I understand people have been waiting for a half a year at least, so it's frustrating to have to wait any longer. But, sit tight.

17. May 2012, 11:09:48

solarlynx

Posts: 12

IMO it's worth to switch to more supported browsers. Like Firefox.

17. May 2012, 11:25:35

Originally posted by burnout426:

We just have to wait till a fix gets released in builds.


Or somehow, set FileReader.readAsArrayBuffer = false

OK, while for Skydrive, setting a.readAsArrayBuffer to false would work. But don't know how to do it via UserJS.
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

17. May 2012, 11:30:42

burnout426

Posts: 12424

FileReader.prototype.readAsArrayBuffer = false;


might be enough.

or

FileReader.prototype.readAsArrayBuffer = undefined;


or whatever you want it to equal.

17. May 2012, 11:32:54

solarlynx

Posts: 12

It would be nice if I knew how to fix that even manually. I don't want to live Opera yet.

17. May 2012, 11:45:47

The first one doesn't work (didn't try the second one).
If I apply it as a UserJS file, when creating a new variable x = new FileReader under Dragonfly Console; readAsArrayBuffer is set to false.

However, variable a (the variable referenced to FileReader) still seems to be same.
When trying
a.readAsArrayBuffer = false;

Dragonfly's Console says:
a.readAsArrayBuffer = false;
Uncaught exception: ReferenceError: Security error: attempted to read protected variable

So I think variable a is protected; and due to this FileReader.prototype.readAsArrayBuffer = false; doesn't help ????
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

17. May 2012, 11:52:36

solarlynx

Posts: 12

Really thank you for your attempt.

So no hope ?

17. May 2012, 12:08:49 (edited)

burnout426

Posts: 12424

Originally posted by Swapnil99pro:

The first one doesn't work (didn't try the second one).



I tried both and that causes Opera to get the old file uploader, but that one doesn't work (upload transfer doesn't actually start).

I haven't really looked at the code or anything though. Maybe I should look at it first.

For those testing user js fixes, remember to turn on User JavaScript on HTTPS.

17. May 2012, 12:12:30

Originally posted by burnout426:

For those testing user js fixes, remember to turn on User JavaScript on HTTPS.


It's turned on. I do get the warning "Do you want to allow local JavaScript files to control secure pages?".

Originally posted by burnout426:

I tried both and that cause Opera to get the old file uploader, but that one doesn't work.


You mean FileReader.prototype.readAsArrayBuffer = false; (or = undefined;) gets you the old file uploader.
Don't know how.
According to the code, if ReadAsArrayBuffer is not true; readAsBinaryString() is to be executed.

Originally posted by Swapnil99pro:

b.isFolder=function(f)
{var a=new FileReader;a.onload=function()
{if(!d)if(!a.result&&!b.extension)f(true);else f(false)};
a.onerror=function(){if(!d)f(true)};
try{if(a.readAsArrayBuffer)a.readAsArrayBuffer(e(0,Math.min(1,c.size)));
else a.readAsBinaryString(e(0,Math.min(1,c.size)))}catch(g){f(true)}}



And, readAsBinaryString should be successful.
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

17. May 2012, 12:36:25

Pesala

Reclining Buddha

Posts: 25609

Originally posted by burnout426:

I understand people have been waiting for a half a year at least, so it's frustrating to have to wait any longer.


I don't think its a problem to wait six months or whatever it takes to fix it — what is frustrating is that Opera did know about this, but instead of simply saying "Its a known bug and we're working on it" the thread got locked without any response to inform users about the issue. This is what causes the frustration.

I assumed that Opera did not know the cause or that it was not within their control because after a year of this issue being reported, no one had said anything.

@ Burnout, I wonder why you kept quiet for until now.
Were you not aware of the multiple threads on this issue?
SkinsTipsButtonsBackupSecurityUser ScriptsLanguage ForumsWiki
Browser JSChangelogsOpera NextDragonflyBugsCrashesFTP
My WebsiteMy ForumsOpera ReviewMy FontsIrfanViewSearchDownloads
Opera 11.64 on Windows XP Home • AMD64 3500 1GB RAM specs idea
Rules of Conduct and Posting RulesPlease Don't ShoutEditing PostsOpera Config Links

17. May 2012, 12:45:04

burnout426

Posts: 12424

Originally posted by Pesala:

@ Burnout, I wonder why you kept quiet for until now. Were you not aware of the multiple threads on this issue?



Correct. Only noticed that there was a problem at all recently because of <http://my.opera.com/sitepatching/blog/show.dml/48164862#comment89416632>. (Also, I don't log into my hotmail account except for testing. And, for a no-hassle experience, usually only log into it, google.com (including youtube.com), yahoo.com, facebook.com and twitter.com in Firefox. Don't use Opera on any of those sites anymore.)

17. May 2012, 12:51:34

burnout426

Posts: 12424

Originally posted by Swapnil99pro:

You mean FileReader.prototype.readAsArrayBuffer = false; (or = undefined;) gets you the old file uploader.Don't know how.



Actually, that may have been when I was just using FileReader = undefined + some other things. Basically just confirms your findings here. I'll have to wait till I have more time to actually look at the source.

17. May 2012, 13:03:48

solarlynx

Posts: 12

So if there any way to fix it manually?

17. May 2012, 13:08:19

Originally posted by Pesala:

I assumed that Opera did not know the cause or that it was not within their control because after a year of this issue being reported, no one had said anything.


They did not know the exact cause. See http://my.opera.com/sitepatching/blog/show.dml/48164862#comment89417772
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

18. May 2012, 07:21:09 (edited)

burnout426

Posts: 12424

Load skydrive.live.com

Load <https://secure.wlxrs.com/vXBwNycYh8AAOoeaBYY1Eg/Bucket4.js> in a new tab and then view source of that page.

Select the source in the source tab, copy it, paste it into <http://jsbeautifier.org/>, beautify it, select it, copy and paste it back into the source tab (overwriting the current selection).

Change the b.isFolder part to:

b.isFolder = function (f) {
    var a = new FileReader;
    a.onload = function () {
        alert('onload');
        if (!d) if (!a.result && !b.extension) f(true);
        else f(false)
    };
    a.onerror = function () {
        alert('error');
        if (!d) f(true)
    };
    try {
        //if (a.readAsArrayBuffer) a.readAsArrayBuffer(e(0, Math.min(1, c.size)));
        //else a.readAsBinaryString(e(0, Math.min(1, c.size)))
        a.readAsBinaryString(c);
        //a.readAsBinaryString(e(0, Math.min(1, c.size)));
        //a.readAsText(c, "utf-8");
        //a.readAsText(e(0, Math.min(1, c.size)));
    } catch (g) {
        f(true)
    }
};


and click "Apply Changes".

Then, select the skydrive page and goto "Menu -> page -> developer tools -> reaload from cache".

Then, try the upload.

Now, what I'm seeing is that a.readAsBinaryString(e(0, Math.min(1, c.size))) still fires a.onerror. This kind of makes me believe that the e() function isn't returning the sliced file blob correctly for Opera.

Now, if I just try to use the blob directly with a.readAsBinaryString() (like above), I don't get an error and it'll get past "waiting" and will actually show "uploading". But, it'll stay at 0%. Same type of result for a.readAsText() (testing with a text file).

So, I'm guessing there are more issues than just Opera's a.readAsArrayBuffer() being broken. I have no clue what though. I could be wrong though. We'll have to wait for the fix to see if everything just works fine. Maybe the fix for readAsArrayBuffer() fixes some subtle things in reading in general.

18. May 2012, 07:37:48 (edited)

burnout426

Posts: 12424

Wait. I tried this UserJS (with opera:config#User%20JavaScript%20on%20HTTPS set of course) with Opera 12.

ArrayBuffer = undefined;
FileReader = undefined;
Blob = undefined;
FileList = undefined;
File = undefined;


and the upload works for me.

I tested the user js in a global user js folder. But, I also instead tested it with just a live.com (not skydrive.live.com, but that might work too) site preference.

18. May 2012, 12:26:36

^^ It works. yes You are excellent. Thanks for your time.

I hope CORE-46374 is fixed soon; or atleast, for the time being, Opera should set it's readAsArrayBuffer support to false (which would also fix Skydrive - causing it to then run readAsBinaryString() )
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

20. May 2012, 01:26:00

solarlynx

Posts: 12

I asked SkyDrive team they answered:
"Have you tried optimizing the Opera browser (clearing cache and cookies) or resetting it? Please try doing it then try uploading files afterwards. If the issue still persists, then the problem is with the browser. Contact their support fo assistance."
I've done clearing cache and cookies through 'Settings'->'Delete Private Data...'. No avail.

21. May 2012, 16:06:30

^^ See my comment on that post: http://my.opera.com/desktopteam/blog/show.dml/48703682#comment89811542
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

21. May 2012, 16:50:31

solarlynx

Posts: 12

So with this fix we can upload at least a file of 757 Kb. That's better then nothing, though I won't risk to use this potentially dangerous version..

21. May 2012, 20:59:48

ajc97

Posts: 5

I'll just go back to FireFox 12 when I use my SkyDrive. And if I forget to go back to Opera when web browsing. p

23. May 2012, 08:06:07

Update for those who might not know:

For Opera 11.6x users, there is a patch in the latest BrowserJS file (May 22). The patch works and you can upload files like you would in another browser. (Tested by me on many files; the largest file being 17 MB uploaded fine with Opera). The issue is fixed for Opera 11.6x users. Please ensure that http://www.opera.com/docs/browserjs/ shows:
Current browser.js status: enabled.
Target version and time stamp of the active browser.js file is Opera Desktop 11.62 core 2.10.229, May 22, 2012. Active patches: 200 .

(this is what is displays for me in Opera 11.64).
If not, you could wait till Opera checks for updates to browser.js automatically or update manually.

For Opera 12 users, they want to fix the problem properly by fixing bugs in Opera causing this problem and as a result have not included the Skydrive patch in the Opera 12 BrowserJS file.
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

26. May 2012, 17:12:58

solarlynx

Posts: 12

Yeah, that's work!!!
Thank you Swapnil99pro !

29. May 2012, 02:10:27

burnout426

Posts: 12424

CORE-46477 in <http://my.opera.com/desktopteam/blog/2012/05/28/yas> will make things work better for Opera 12. If you have a User JS folder set in preferences though (with a simple js file that you know won't interfere) (even if user js isn't enabled for https), the upload might still break for some reason. But, it should work fine otherwise in my testing.

29. May 2012, 04:03:16

^^ No it doesn't. It's a clean install here - Opera 12 build 1433; so no User JS or any settings changed.
I tried to upload a PDF file of 6.5 MB = and after some 15-20% progress, an error was returned from Skydrive-

Please enter a name that doesn't include any special characters, or begin or end with a "."

The same happened with all other files, even the smaller ones like 700 KB; except for some really small 3 or 4 KB images that uploaded fine.

The code triggering that error is inside bucket1.js, the exact line of code being-

else if(a.startsWith(".")||!g.extension&&a.endsWith("."))b=c("CantStartOrEndWithDotError");


Seems to be an Opera bug.
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

29. May 2012, 04:22:39

burnout426

Posts: 12424

Originally posted by Swapnil99pro:

so no User JS or any settings changed.



Do you have any extensions that inject User JS? That'll trigger that error too.

Edit: I was able to trigger that error once without any User JS, but most of the time, the upload is working fine more me.

No it doesn't



There's a way politer way to say that you believe I'm mistaken or that it's not working the same way for you than it is for me.

29. May 2012, 04:39:41

Originally posted by burnout426:

Do you have any extensions that inject User JS?


Nope, no extensions, no UserJS, the first thing I did after a clean-install (un-installed previous build > "Delete my Opera user data" checked in Uninstaller > Installed this build) of the build was to test Skydrive.
Yours is a clean-install or update from previous build?

Originally posted by burnout426:

There's a way politer way to say that you believe I'm mistaken or that it's not working the same way for you than it is for me.


Sorry for that.
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

29. May 2012, 04:48:04 (edited)

burnout426

Posts: 12424

Originally posted by Swapnil99pro:

Yours is a clean-install or update from previous build?



Fresh standalone installation where I was able to trigger the problem by setting a global user JS folder. I also tested with a dirty installation where I got that error until I unset a global User JS folder (that how I found out how to trigger it in the fresh profile). But, maybe it's something else that triggers it. At any rate, it's indeed not 100% working yet. Devs have been informed.

5. June 2012, 14:12:11

Update:

Opera 12 build 1441 has this fixed.
Windows 7 SP1 x86 edition and Windows XP Service Pack 3.
If you need any help from me with regards to Opera, please make a comment on any of my blog posts.
Support Opera wishes

Forums » Opera for Windows/Mac/Linux » Opera browser