首页 > 解决方案 > 通过 ajax 将大文件 (200+ mbs) 从本地上传到 sharepoint 2013

问题描述

我正在尝试通过 Ajax 将文件上传到 sharepoin 2013 上的库。我正在使用以下代码:

function uploadFileee(file) {
// var file = element.files[0];
console.log(file);
var reader = new FileReader();

reader.onload = function (e) {

    enviar(e.target.result, file.name);
}
reader.onerror = function (e) {
    alert(e.target.error);
}
//reader.readAsArrayBuffer(file);
reader.readAsArrayBuffer(file);


function enviar(file, name) {

    var url = String.format(
        "{0}/_api/Web/Lists/getByTitle('{1}')/RootFolder/Files/Add(url='{2}', overwrite={3})",
        _spPageContextInfo.webAbsoluteUrl, "TreinamentoLib", name, "true");
    console.log(url);

    jQuery.ajax({
        url: url,
        type: "POST",
        data: file,
        processData: false,
        headers: {
            Accept: "application/json;odata=verbose",
            "X-RequestDigest": jQuery("#__REQUESTDIGEST").val()
        },
        success: function (data) {
            console.log("sucesso");
        },
        error : function(err)
        {
            console.log("erro");
        }
    })
}
}

只要文件低于 200mb,它就可以正常工作,但大于这个值,浏览器就会崩溃。

块只能在 sharepoint 的在线版本上工作.. 不能让它在 On Premise 上工作。虽然已经在 C# 中创建 webApi 来接收块并将其组合在一起并将其上传到库中..

有人做过类似的事情吗?有人有什么建议吗?

标签: restfilesharepoint

解决方案


在 SharePoint On Premise 中,您可以尝试在“C:\Inetpub\wwwroot\wss\VirtualDirectories\<虚拟目录>”文件夹的 web.config 文件中增加 maxRequestLength="51200" executionTimeout="999999"。

或检查 Web 应用程序的最大上传大小:中央管理> 应用程序管理> 管理 Web 应用程序> 选择所需的 Web 应用程序,然后单击功能区上的常规设置。


推荐阅读