首页 新闻 赞助 找找看

fileinput上传文件,.net MVC服务端保存的文件包大小有丢失的情况

0
悬赏园豆:20 [待解决问题]

使用fileinput 做了一个上传功能,本地测试正常,部署到服务器上 ,发现服务端接收文件大小每次都不一样,都不是一个完整文件

前端js

//初始化fileinput控件(第一次初始化)
oFile.Init = function (ctrlName, uploadUrl) {
var control = $('#' + ctrlName);

        //初始化上传控件的样式
        control.fileinput({
            language: 'zh', //设置语言
            uploadUrl: uploadUrl, //上传的地址
            allowedFileExtensions: ['xlsx', 'xls','doc','docx','txt','PDF','png','jpeg','jpg','gif','zip','rar'],//接收的文件后缀
            showUpload: true, //是否显示上传按钮
            //showPreview: false, //是否显示预览
            showCaption: true,//是否显示标题
            browseClass: "btn btn-primary", //按钮样式   
            autoReplace: true,
            //dropZoneEnabled: false,//是否显示拖拽区域
            //minImageWidth: 50, //图片的最小宽度
            //minImageHeight: 50,//图片的最小高度
            //maxImageWidth: 1000,//图片的最大宽度
            //maxImageHeight: 1000,//图片的最大高度
            maxFileSize: 512000,//单位为kb,如果为0表示不限制文件大小
            //minFileCount: 0,
            maxFileCount: 10, //表示允许同时上传的最大文件个数
            allowedPreviewTypes: ['image'],
            enctype: 'multipart/form-data',
            //validateInitialCount:true,
            previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
            msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
            uploadExtraData: function () {//向后台传递参数             
                var data = {
                    TimerID: $("#TimerID").val(),
                    //versionNum: $("#versionNum").val(),
                    //description: $("#description").val()
                };
                return data;
            },
        });

        //导入文件上传完成之后的事件
        $('#' + ctrlName).on("fileuploaded", function (event, data, previewId, index) {
            //$("#myModal").modal("hide");
            var data = data.response;
            if (data.ResultCode == "1") {
                //清空上传区域
                $(event.target)
            .fileinput('clear')
            .fileinput('unlock')
                //$("#excelFileName").val(data.ResultValue.fileName);
                //$("#excelPath").val(data.ResultValue.filePath);
                layer.msg('上传成功', { time: 2000, icon: 1 });
            } else {
                
                layer.msg(data.requestMsg, { time: 2000, icon: 2 });
                //$('.fileinput-remove').click();
                $(event.target)
            .fileinput('clear')
            .fileinput('unlock')
            }

        }).on("filebatchuploadsuccess", function (event, data, previewId, index) {
            //$("#myModal").modal("hide");
            var data = data.response;
            if (data.ResultCode == "1") {
                //清空上传区域
                $(event.target)
            .fileinput('clear')
            .fileinput('unlock')
                //$("#excelFileName").val(data.ResultValue.fileName);
                //$("#excelPath").val(data.ResultValue.filePath);
                layer.msg('上传成功', { time: 2000, icon: 1 });
            } else {

                layer.msg(data.requestMsg, { time: 2000, icon: 2 });
                //$('.fileinput-remove').click();
                $(event.target)
            .fileinput('clear')
            .fileinput('unlock')
            }

        });
    }
    return oFile;
},

后台代码

#region 多文件上传
[HttpPost]
public ActionResult FileUpMany()
{

        try
        {
            foreach (string key in Request.Files)
            {
                string TimerID = Request["TimerID"];
                
                //var a =cronTimeBll.IFInTestTime(TaskInfo.TimerCode, "", 0);
                string FilePath = "/FileManSYS/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MMdd") + "/";
                string uploadPath = UploadUrl + FilePath;
                //uploadPath = Server.MapPath(UploadUrl+FilePath);
                if (!Directory.Exists(uploadPath))
                {
                    Directory.CreateDirectory(uploadPath);
                }
                //var postedFile = HttpContext.Request.Files[key];    // 获取文件键对应的文件对象
                var uploadFile = Request.Files[key];
                if (uploadFile != null && uploadFile.ContentLength > 0)
                {
                    string oFileName = uploadFile.FileName;
                    string oExt = oFileName.Substring(oFileName.LastIndexOf('.'));
                    string FileName = oFileName.Remove(oFileName.Length - oExt.Length, oExt.Length);
                    string Filetype = oExt.Remove(0, 1);
                    string FileTrueName = FileName + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + oExt;
                    string FileAllPath = UploadUrl + FilePath + FileTrueName;
                    string FilePartPath = FilePath + FileTrueName;
                    uploadFile.SaveAs(FileAllPath);
                }
            }
            return Ok();
        }
        catch (Exception e)
        {
            
            throw;
        }
    }
    #endregion

明明是同一个文件,每次上传大小都不一样,源文件有十几mb

代码小六的主页 代码小六 | 初学一级 | 园豆:12
提问于:2018-12-01 02:01
< >
分享
所有回答(2)
0

内容有丢失?

chester·chen | 园豆:507 (小虾三级) | 2018-12-01 09:00

是的 一个10MB 的文件 上传上去只有3mb h或者4mb 每次都不一样

支持(0) 反对(0) 代码小六 | 园豆:12 (初学一级) | 2018-12-01 21:52
0

系统异常,重装系统

代码小六 | 园豆:12 (初学一级) | 2018-12-06 17:08

foreach (string key in Request.Files) 该语句出的问题,改为先获取文件数,然后循环文件数,而不是循环文件,则没有问题

支持(0) 反对(0) 代码小六 | 园豆:12 (初学一级) | 2019-08-05 16:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册