[owncloud-devel] Unable to upload files in chunks on ownCloud server using C#

RAHUL JAIN rahuljain840 at gmail.com
Mon Jun 8 16:31:43 GMT 2015


Hi All,

A lots of Thanks for your valuable suggestions and comments. I have checked
the link provided by you guys and implemented in that way too. Still no
success. But today i faced one more issue "Not Found - The requested URL
/index.php/apps/files/ajax/download.php was not found on this server" while
downloading the files from ownCloud server.

*Note:* I am able to download files that are shared with me.

Steps to reproduce

1. Login into user account.
2. Create a folder e.g. /Test
3. Access external storage, create a text file ‘Test.txt' and save it.
4. Click download button.
5. Error msg 'Not Found' appears – “The requested URL
/index.php/apps/files/ajax/download.php was not found on this server”.

Can anyone please suggest me is this can cause any trouble in chunk upload
or how can i resolve this issue?

I found some links related to this issue:
1. https://github.com/owncloud/core/issues/3644
2.
https://forum.owncloud.org/viewtopic.php?f=23&t=11685#p30407https://forum.owncloud.org/viewtopic.php?f=23&t=11685#p30407

I really need to resolve this issue ASAP.


On Mon, Jun 8, 2015 at 1:46 PM, Vincent Petry <pvince81 at owncloud.com> wrote:

>  Hello,
>
> Check out
> https://github.com/owncloud/pyocclient/blob/master/owncloud/owncloud.py#L457
> for how to do it properly.
>
> You need to pass a magic file name (file name + a bunch of stuff embedded
> in the file name) to make it work.
>
> Cheers,
>
> Vincent
>
>
> On 07.06.2015 11:22, RAHUL JAIN wrote:
>
> Hi All,
>
> I am trying to upload file in chunks on ownCloud on-premise server usingASP.NET C#. I have tried all my ways to upload file in chunks but each time
> my chunk data is overwrite on previous chunk data.
>
> I am unable to append my chunk on previously uploaded chunk. I am using
> plUpload to send files in chunk. And i have created an handler which is
> called each time a chunk is uploaded here is the code that runs to upload
> the chunk. I know i am missing some headers to inculde in code which must
> be required to submit data in chunks.
> Below is my code to submit data on ownCloud server.
>
> Source code used:
>
> public void Upload(Stream chunkStream, String remoteFilePath, object state)
>         {
>             Uri uploadUri = getServerUrl(remoteFilePath, false);
>             string method = WebRequestMethods.Http.Put.ToString();
>
>             var content = ReadFully(chunkStream);
>
>             AsyncCallback callback = new AsyncCallback(FinishUpload);
>
>             // Need to send along headers?
>             IDictionary<string, string> headers = new Dictionary<string,
> string>();
>             headers.Add("OC_Chunked", "1");
>
>             HTTPRequest(uploadUri, method, headers, content, localFilePath,
> callback, state, true);
>         }
>
> void HTTPRequest(Uri uri, string requestMethod, IDictionary<string, string>
> headers, byte[] content, string uploadFilePath, AsyncCallback callback,
> object state, bool sendChunks)
>         {
>             httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
>
>             /*
>              * The following line fixes an authentication problem explained
> here:
>              *http://www.devnewsgroups.net/dotnetframework/t9525-http-protocol-violation-long.aspx
>              */
>             System.Net.ServicePointManager.Expect100Continue = false;
>
>             // The server may use authentication
>             if (user != null && pass != null)
>             {
>                 NetworkCredential networkCredential;
>                 if (domain != null)
>                 {
>                     networkCredential = new NetworkCredential(user, pass,
> domain);
>                 }
>                 else
>                 {
>                     networkCredential = new NetworkCredential(user, pass);
>                 }
>                 httpWebRequest.Credentials = networkCredential;
>                 // Send authentication along with first request.
>                 httpWebRequest.PreAuthenticate = true;
>             }
>             httpWebRequest.Method = requestMethod;
>
>
>             // httpWebRequest.SendChunked = true;
>             if (headers != null)
>             {
>                 foreach (string key in headers.Keys)
>                 {
>                     httpWebRequest.Headers.Set(key, headers[key]);
>                 }
>             }
>
>             if (sendChunks)
>             {
>                 httpWebRequest.SendChunked = true;
>             }
>
>             // Need to send along content?
>             if (content != null || uploadFilePath != null)
>             {
>                 RequestState asyncState = new RequestState();
>                 asyncState.request = httpWebRequest;
>                 asyncState.userCallback = callback;
>                 asyncState.userState = state;
>
>                 if (content != null)
>                 {
>                     // The request either contains actual content...
>                     httpWebRequest.ContentLength = content.Length;
>                     asyncState.content = content;
>                     httpWebRequest.ContentType = "text/xml";
>                 }
>                 else
>                 {
>                     // ...or a reference to the file to be added as content.
>                     httpWebRequest.ContentLength = new
> FileInfo(uploadFilePath).Length;
>                     asyncState.uploadFilePath = uploadFilePath;
>                 }
>
>                 // Retrieve the request stream.
>                 Stream putRequestStream1 =
> httpWebRequest.GetRequestStream();
>
>                 // Write the string to the destination as text bytes.
>                 putRequestStream1.Write(content, 0, content.Length);
>
>                 // Close the request stream.
>                 putRequestStream1.Close();
>
>                 // Retrieve the response.
>                 HttpWebResponse httpPutResponse1 =
> (HttpWebResponse)httpWebRequest.GetResponse();
>             }
>             else
>             {
>             }
>         }
>
>
> Kindly suggest where am i doing wrong.
>
> Thanks in advance.
>
>
>
>
> _______________________________________________
> Devel mailing listDevel at owncloud.orghttp://mailman.owncloud.org/mailman/listinfo/devel
>
>
>
> _______________________________________________
> Devel mailing list
> Devel at owncloud.org
> http://mailman.owncloud.org/mailman/listinfo/devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.owncloud.org/pipermail/devel/attachments/20150608/aeced564/attachment.html>


More information about the Devel mailing list