0

我可以在某些沙盒WebPart中为Sharepoint在线制作上传文件格式,如果可以,我该怎么做?

我搜索了很多,发现只有解决方案,可用于外部客户端的客户端对象模型,没有示例如何使用 JSOM(Javascript 的客户端对象模型)和通常的上传方式asp:FileUpload在沙盒解决方案中不起作用, PostedFile 长度 = 0

4

3 回答 3

1

您确实可以选择使用 ActiveX STSUpld.UploadCtl 控件 - 这使您能够提供在文档库中看到的多文件上传。

请注意,以下内容 - 必须设置 Confirmation-URL(上传完成后的去向),并且还必须将目标设置为现有文档库。

<script type="text/jscript">
function DocumentUpload() {
    var uploadCtl = document.getElementById("idUploadCtl");
    uploadCtl.MultipleUpload();
}
</script>

<input type='hidden' name='Confirmation-URL' id='Confirmation-URL' value='' />
<input type='hidden' name='PostURL' id='PostURL' value='' />
<input type="hidden" name="Cmd" value="Save" />
<input type="hidden" name="putopts" value="true" /> <!-- Overwrite files -->
<input type="hidden" name="VTI-GROUP" value="0" />
<input type="hidden" name="destination" id="destination" value="/TestDL" /> <!-- Files destination path, must already exist -->
<p style="margin-left:auto;margin-right:auto;margin-top:0px;margin-bottom:0px;text-align:center;padding:0px !important; vertical-align:top;width:100%;">
    <script type="text/javascript">
        try {
            if (new ActiveXObject("STSUpld.UploadCtl"))
                document.write("<OBJECT id=\"idUploadCtl\" name=\"idUploadCtl\" CLASSID=\"CLSID:07B06095-5687-4d13-9E32-12B4259C9813\" WIDTH=\"600px\" HEIGHT=\"250px\" ></OBJECT>");
        }
        catch (error) {
        }
    </script>
<asp:Button runat="server" accesskey="O" id="OKButton" CssClass="ms-ButtonHeightWidth" OnPropertyChange="if (this.value != 'Upload files') this.click();" Text="Upload files" UseSubmitBehavior="False" OnClientClick="DocumentUpload(); return false;" />
<asp:Button runat="server" accesskey="C" id="CancelButton" CssClass="ms-ButtonHeightWidth" Text="Cancel" UseSubmitBehavior="False" OnClientClick="window.location ='<somewhere to go>'; return false;" />

希望这可以帮助....

于 2013-03-14T15:52:32.663 回答
0

没有太多选择,但是请查看 CodePlex 上的 SPServices - 这将是最好的起点。请记住 - SharePoint 在调用服务时需要一个二进制对象。您必须先捕获文件并将其转换为二进制文件,然后调用 Web 服务进行上传。

我有一个例子,但我在当前位置没有 - 如果上述内容没有让您开始,请告诉我,我会找到并发布。

于 2012-12-25T23:07:03.137 回答
0

经过一番搜索,我终于找到了基于 Codeplex 的 SPServices 的解决方案。有插件 SPWidgets(https://github.com/purtuga/SPWidgets/)。这个插件使用upload.asmx(Sharepoint的默认上传表单)加载一个iframe,然后设置显示:此页面上的所有元素都没有,exept input[type=file]并添加按钮,可以在iframe中提交表单。在提交插件捕获 iframe 状态(_onIFramePageChange 事件)并根据 iframe url 执行一些回调之后。

这看起来像一些丑陋的解决方法,但它只是我在搜索数小时后找到的有效解决方案。

于 2013-01-14T15:05:36.990 回答