上传设置文件大小限制

时间:2012-12-28 11:42:36

标签: c# asp.net-mvc-3 uploadify

我正在开发一个项目,我已经使用uploadify控件进行文件上传,我必须将文件大小限制设置为5MB,我已经看到了它的文档Here

我尝试设置5MB,但是当我选择大约3MB的文件时,它显示文件大小错误 我也尝试设置没有任何单位的值(即5120),但在这种情况下,当我选择文件3MB大小时,它也显示文件大小错误

这是我的代码

var sizelimit = '5MB'; //or '5120'
$('#file_upload').uploadify({
        'uploader': ResourceUplodify.Uploader,
        'script': ResourceUplodify.ScriptFile,
        'cancelImg': ResourceUplodify.CancelImg,
        'folder': ResourceUplodify.Folder,
        'fileDesc': 'Document Files',
        'buttonImg': '../../Content/images/Attach-File.jpg',
        'fileExt': '*.pdf;*.doc;*.ppt;*.odt;*.rtf;*.txt',
        // 'sizeLimit': 10485760,
        'sizeLimit': sizelimit,
        'height': 29,
        'width': 90,
        'buttonText': 'Attach File',
        'multi': false,
        'auto': false,
        'onSelect': function (a, b, c, d, e) {          
        },
        'onComplete': function (a, b, c, d, e) {
            //            if (d != '1') {          
        },
        'onError': function () {

        }
    });

我也想与uploadify一起使用会话,他们已经显示了用于处理会话的PHP代码,但我不知道如何在C#中使用会话(使用uploadify offcourse)

Working with Session in Uploadify

如何在MVC3(C#代码)中访问formdata的值

2 个答案:

答案 0 :(得分:2)

ASP.NET中的默认请求大小限制为4MB。

如果要允许上传大于4MB的文件,请确保使用<httpRuntime>元素在web.config中增加了请求大小的默认值:

<system.web>
    <!-- 5MD (value is in KB here) -->
    <httpRuntime maxRequestLength="5120" />
    ...
</system.web>

如果您在IIS7上托管,则需要将maxAllowedContentLength设置为相同的值(以字节为单位):

<system.webServer>
    <security>
        <requestFiltering>
            <!-- 5MB (value is in bytes here) -->
            <requestLimits maxAllowedContentLength="5242880" />
        </requestFiltering>
    </security>
</system.webServer>

就会话而言,您可能会发现following post很有用。

答案 1 :(得分:1)

Uploadify上的文件大小限制管理 - Aspnet基于2个不同的功能:

  • 服务器管理设置IIS可以接受的文件大小限制

  • 客户端管理设置浏览器可以发送的文件大小限制


服务器文件限制由web.config中的maxRequestLength参数设置

 <httpRuntime requestValidationMode="2.0"  maxRequestLength="102400"/>

这是一个KByte数值,因此maxRequestLength =“102400”表示100 MB文件。


浏览器文件限制由.uploadify()javascript inizialization中的sizeLimitparameter设置

function uploadScript(sessionId, swfUrl, ascxUrl, cancelUrl) {
$('input[type="file"]').each(function (i) {
    $(this).uploadify({
        'uploader': swfUrl,
        'script': ascxUrl,
        'scriptData': { 'sessionId': sessionId, 'clientId': $(this).attr("id") }, // $(this).closest("div").attr("id") 
        'cancelImg': cancelUrl,
        'auto': true,
        'multi': false,
        'fileDesc': 'Tutti i file',
        'fileExt': '*.*',
        'queueSizeLimit': 90,
        'sizeLimit': 100000000,
        'buttonText': 'Scegli file',
        'folder': '/uploads',
        'onAllComplete': function (event, queueID, fileObj, response, data) { }
    });
});

}

sizeLimit是一个字节值,因此要发送100 MB文件,您必须考虑100M = 1024 * 1024 * 100.