Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I'm trying to upload files to a SharePoint 2007 environment using PUT requests. Using the object model isn't an option since my application is not running on one of the SharePoint servers and unfortunately 2007 doesn't have a client model.

I'm using the rather default upload code which is found on many blogs:

    WebRequest request = WebRequest.Create(destinationUrl);

    request.Credentials = credential;
    request.Method = "PUT";

    byte[] buffer = new byte[1024];

    // Write the contents of the local file to the
    // request stream.
    using (Stream stream = request.GetRequestStream())
    using (FileStream fsWorkbook = File.Open(filePath, FileMode.Open, FileAccess.Read))
    {
      int i = fsWorkbook.Read(buffer, 0, buffer.Length);

      while (i > 0)
      {
        stream.Write(buffer, 0, i);
        i = fsWorkbook.Read(buffer, 0, buffer.Length);
      }
    }

This works fine, untill I run into a situation where I need to recursively upload folders with their contents and there are folders with special characters like '+'. Whenever I try to upload a file there, I get a 404 error.

I have tried escaping the + with %2b, I've tried replacing it with a space or an empty character, nothing seems to work.

So I can properly upload to List/folder/, or List/folder/subfolder/, but not to list/folder + name/. Any ideas on a good reliable workaround?

share|improve this question

1 Answer 1

up vote 0 down vote accepted

I switched to the RPC methods for uploading files. Works better and supports setting metadata at the same time. IMHO the better way to do it.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.