所以我正在尝试使用MOSS 2007 Web Services API的Java实现将文档上传到sharepoint站点。我已设法将文件上传到网站,我可以通过手动查看目标网址来确认。但是,使用所有文档视图时,文件不可见。我觉得这与我如何设置元数据有关,但我不确定。
这是我的参考代码:
public static void main(String[] args) {
JCopy copy = new JCopy("http://somespsite", "user", "pass");
try {
File f = new File("c:/test.txt");
byte[] b = new byte[(int) f.length()];
FileInputStream fileInputStream = new FileInputStream(f);
fileInputStream.read(b);
List<String> dest = new ArrayList<String>();
dest.add("http://somespsite/Test Repository/Forms/test.txt");
List< FieldInformation > fields = new ArrayList<FieldInformation>();
FieldInformation field = new FieldInformation();
field.setType(FieldType.TEXT);
field.setDisplayName("Test2");
field.setInternalName("Test2");
field.setId(java.util.UUID.randomUUID().toString());
field.setValue(field.getValue());
copy.copyIntoItems(
"c:/test.txt",
dest,
fields,
b,
null);
}catch (Exception e) {
e.printStackTrace();
}
}
class JCopy {
public int copyIntoItems(
String sourceUrl,
List<String> destinations,
List<FieldInformation> fields,
byte[] stream,
List<CopyResult> results )
{
DestinationUrlCollection destinationUrls = new DestinationUrlCollection();
for(String s : destinations)
destinationUrls.addString(s);
FieldInformationCollection fieldsInput = new FieldInformationCollection();
for(FieldInformation f : fields)
fieldsInput.addFieldInformation(f);
Holder<Long> copyIntoItemsResult = new Holder<Long>(Long.valueOf(-1));
Holder<CopyResultCollection> resultsOutput = new Holder<CopyResultCollection>((CopyResultCollection) results);
try {
port.copyIntoItems(sourceUrl, destinationUrls, fieldsInput, stream, copyIntoItemsResult, resultsOutput);
results = resultsOutput.value.getCopyResult();
} catch (Exception e) {
e.printStackTrace();
}
return copyIntoItemsResult.value.intValue();
}}
port是Netbeans使用JDK 1.6生成的存根的实例。
答案 0 :(得分:1)
您正在将文档上传到错误的位置。
文件存储在文档库中。文档库具有一组默认的表单,用于显示和编辑每个文件的属性。具有适当权限的用户可以自定义或添加新权限。
表单放在每个文档库的“Forms”文件夹中。所有视图都显示库本身的内容,而不是Forms文件夹。
我假设“Test Repository”是您的文档库,在这种情况下,您将文件test.txt上传到“Forms”目录而不是“Test Repository”本身。
只需将您的网址更改为指向“测试存储库”而不是“测试存储库/表单”。