您好我正在尝试将本地上传到Sharepoint documentLibrary。
以下代码适用于将文件上传到文档Libray中。
public void UploadFile(string srcUrl, string destUrl)
{
if (!File.Exists(srcUrl))
{
throw new ArgumentException(String.Format("{0} does not exist",
srcUrl), "srcUrl");
}
SPWeb site = new SPSite(destUrl).OpenWeb();
FileStream fStream = File.OpenRead(srcUrl);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
site.Files.Add(destUrl, contents);
}
但我需要在文档库中创建一个文本文件,其中包含“这是一个新文件”之类的内容,而不将其保存在本地磁盘中。
答案 0 :(得分:4)
您可以使用MemoryStream代替FileStream
。
答案 1 :(得分:1)
您可以将字符串编码为字节数组,并从该数组创建文件。
顺便说一句,请注意您的代码泄漏了SPSite
和SPWeb
,这非常危险,因为这些对象会占用大量内存。你需要妥善处理它们,例如使用嵌套的using语句:
using System.Text;
public void AddNewFile(string destUrl)
{
using (SPSite site = new SPSite(destUrl)) {
using (SPWeb web = site.OpenWeb()) {
byte[] bytes = Encoding.GetEncoding("UTF-8").GetBytes(
"This is a new file.");
web.Files.Add(destUrl, bytes);
}
}
}
答案 2 :(得分:0)
类似的东西:
public void UploadText(string text, Encoding encoding, string destUrl)
{
SPWeb site = new SPSite(destUrl).OpenWeb();
site.Files.Add(destUrl, encoding.GetBytes(text));
}
PS:你需要一个编码来从一个字符串转换为一个字节数组。您可以像我一样对其进行硬编码或将其作为参数传递。