我有一个图像需要保存在共享文档下的Sharepoint站点中
由于各种原因,图像必须保存在system.drawing.image中,并保存在sharepoint站点内的共享文档中。它不必保存在本地硬盘中。
你有什么解决方案吗?
到目前为止,我还在尝试
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
byte[] imagebyte = ms.ToArray(); 然后保存二进制函数的流阅读器,但没有joy
发布于 2012-05-21 21:34:12
10开始,您需要更改此处的一些硬编码设置
public void addToSharepointImageList(string folderName, string fileName, byte[] content)
{
string path = @"\\yoursite\yourlistname\";
string baseSharePointPath = "http://yoursite/";
string listName = "yourlistname";
SharePointImagingService.Imaging svc = null;
try
{
path += folderName;
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
#region create sharepoint service
svc = new SharePointImagingService.Imaging();
NetworkCredential nc = new NetworkCredential("username", "password", "domain");
svc.Credentials = nc;
//svc.Credentials = System.Net.CredentialCache.DefaultCredentials;
svc.Url = baseSharePointPath + listName+ "/_vti_bin/imaging.asmx";
svc.Discover();
#endregion
svc.Upload(baseSharePointPath + listName, folderName, content, fileName, true);
}
catch (Exception e)
{
//deal with error
}
finally
{
svc.Dispose();
}
}或者,如果您只是尝试将文件直接保存到非图像列表中,您可以将sharepoint视为一个巨大的文件共享,只需打开一个文件流并在其中写入字节数组。
发布于 2012-05-22 18:03:25
过了一段时间,我设法找到了一个避免图片库的解决方案
void imageSave(System.Drawing.Image imageTobeSaved)
{
using (SPSite site = new SPSite("http://sptestsite/"))
{
using (SPWeb web = site.RootWeb)
{
SPFolder myLibrary = web.Folders["Shared%20Documents"];
var stream = new System.IO.MemoryStream();
string filename = "picture.jpg";
MemoryStream ms = new MemoryStream();
imageTobeSaved.Save(ms, System.Drawing.Imaging.ImageFormat.jpg);
byte[] ImageByte = ms.ToArray();
SPFile spfile = myLibrary.Files.Add(filename, ImageByte);
myLibrary.Update();
}
}
}https://stackoverflow.com/questions/10685832
复制相似问题