Go to Google Groups Home    microsoft.public.sharepoint.portalserver
Programmatically attach a file to a list item (c#)

jman0 <jm...@zapo.net>

I'm developing a custom webpart to substitute the standard webpart on
the NewForm.aspx and EditForm.aspx and create and edit elements on a
list. The list must allow attaching files to list items, so I've
programmed a way to do this, but I have a problem.

If I open the site on the MOSS Server, everything runs fine and the
files get attached properly, but if I do it from any of the clients on
the network, I get "file not found" exceptions. I've tried
impersonating local accounts on the client machines and even service
accounts (i.e. "NT AUTHORITY\NETWORK SERVICE", but I always get a
"incorrect user name or password" exception.

The code which throws the exception is this:

            FileStream file = null;

            // Read the file. This appears to be the offending line
            file = File.OpenRead(Path);

            // Path is a string parameter containing the local path to
the file (i.e. c:\folder\file1.txt)

            // Store file contents in a byte array
            byte[] Content = new byte[file.Length];
            file.Read(Content, 0, (int)file.Length);
            file.Close();
            file.Dispose();

            SPAttachmentCollection AttachmentList = Item.Attachments;

            // Item is the SPListItem object I'm working with

            string FileName = GetFileName(Path);

            // GetFileName is a static method I made, to extract the
name of the file from its path

            AttachmentList.Add(FileName, Content);

How does MOSS internally accomplish such a thing? I've never had to it
set up so it impersonates local or network accounts, and MOSS always
browses the local drives and attaches the files without trouble.

Thanks in advance.