I am executing code in a program I have been working on that uploads files to sharepoint. I am uploading the file with HTTP PUT, then using the path to update the attributes. For a day or two I've been focusing on user defined content types. Today I went to upload a file to the Document content type and I got an error that said The file or folder name contains characters that are not permitted.
My xml that is sent to UpdateListItems looks like this:
<Batch OnError="Continue"> <Method ID="1" Cmd="Update"> <Field Name="ID" /> <Field Name="FileRef">http://sharepoint:32667/personal/user/Shared%20Documents/EmailMessage.msg</Field> <Field Name="ContentType">Document</Field> <Field Name="Title">Test</Field> </Method> </Batch>
So far I have been successfull updating items. The only difference I can think of in this case is that the File path has the port number in it. I've been uploading to another server that I haven't had to specify the port number on.
The response I get back is:
<Results xmlns="http://schemas.microsoft.com/sharepoint/soap/"> <Result ID="1,Update"> <ErrorCode>0x81020073</ErrorCode> <ErrorText>The file or folder name contains characters that are not permitted. Please use a different name.</ErrorText> </Result> </Results>
This is part of generalized code that will allow a user to pick a content type from a list. So that is why the content type gets set to Document. I'm guessing either that or the semicolon in the url may be the problem.