Message from discussion
Programmatically attach a file to a list item (c#)
Path: g2news2.google.com!postnews.google.com!t21g2000yqi.googlegroups.com!not-for-mail
From: jman0 <jm...@zapo.net>
Newsgroups: microsoft.public.sharepoint.portalserver
Subject: Programmatically attach a file to a list item (c#)
Date: Wed, 1 Jul 2009 03:04:50 -0700 (PDT)
Organization: http://groups.google.com
Lines: 44
Message-ID: <b19c1148-2fb6-42ad-b7ad-1237b53d0df5@t21g2000yqi.googlegroups.com>
NNTP-Posting-Host: 82.130.195.150
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Trace: posting.google.com 1246442691 870 127.0.0.1 (1 Jul 2009 10:04:51 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Wed, 1 Jul 2009 10:04:51 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: t21g2000yqi.googlegroups.com; posting-host=82.130.195.150;
posting-account=XvWJLgkAAADJq_SyNCMK4c_56gi8EnEd
User-Agent: G2/1.0
X-HTTP-Via: 1.1 IBISA01
X-HTTP-UserAgent: Opera/9.80 (Windows NT 5.1; U; es-ES) Presto/2.2.15
Version/10.00,gzip(gfe),gzip(gfe)
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.