uploadify 上传

本来想做一套上传公用的组建的,里面包含文件转码等功能,看来这些都只能后来一步一步加上了,先写下来。。。

1,引入脚本等

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <title>Index</title>
    <link href="/uploadify/uploadify.css" rel="stylesheet" />
</head>
<body>
    <input type="file" name="upload" id="upload" />
</body>
</html>
<script src="/Scripts/jquery-1.11.1.min.js"></script>
<script src="/uploadify/jquery.uploadify.min.js"></script>
<script>
    $(function () {
        $('#upload').uploadify({
            'formData': { 'folder': 'd:\' },
            'buttonText': '选择文件',
            'buttonClass': 'browser',
            'removeCompleted': false,
            'swf': '/uploadify/uploadify.swf',
            'uploader': '/FileUp/Upload',
            'fileSizeLimit':'500MB',
            'onError': function (event, id, fileObj, errorObj) {
                if (errorObj.type === "File Size") {
                    alert('超过文件上传大小限制(2M)!');
                    return;
                }
                alert(errorObj.type + ', Error: ' + errorObj.info);
            },
        });
    });
</script>

2,后台上传代码

 public class FileUpController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ContentResult Upload(HttpPostedFileBase fileData, string folder)
        {
            string filename = "";
            if (null != fileData)
            {
                var length = fileData.ContentLength;
                try
                {
                    filename = Path.GetFileName(fileData.FileName); //获得文件名
                    saveFile(fileData, folder, filename);
                }
                catch (Exception ex)
                {
                    filename = ex.ToString();
                }
            }
            return Content(filename);
        }

        [NonAction]
        private bool saveFile(HttpPostedFileBase postedFile, string filepath, string saveName)
        {
            bool result = false;
            if (!Directory.Exists(filepath))
            {
                Directory.CreateDirectory(filepath);
            }
            try
            {
                postedFile.SaveAs(Path.Combine(filepath, saveName));
                result = true;
            }
            catch (Exception e)
            {
                throw new ApplicationException(e.Message);
            }
            return result;
        }
    }

3,设置web.config(在system.web节点中)

    <httpRuntime requestLengthDiskThreshold="256" maxRequestLength="2097151"/>   //假如超过256kb文件,其将缓存到硬盘

  

原文地址:https://www.cnblogs.com/objectboy/p/4009587.html