阅读 102

Ajax上传文件到C#Action中使用 jquery.form.js

用普通的ajax提交表单的时候,不能把文件流传到后端去,所以要用到jquery.form.js

jquery.form.js到官网下载或者从这里下载:

 

 

引用js文件包:jquery.form.js可以下载 http://malsup.com/jquery/form/#download

  
  var formEle = $("#DefaultPicture_Create_Form");//一定要form.find不然与查询页面重复
                        var defaultPictureName = formEle.find("#DefaultPictureName").val().trim();
                        var defaultPictureID = formEle.find("#DefaultPictureID").val();
                        $("#DefaultPicture_Create_Form").ajaxSubmit({
                            url: "@Url.Action("Save", "DefaultPictureMaintenance")",
                            type: "post",
                            dataType: ‘json‘,
                            data: {
                                DefaultPictureName: defaultPictureName,
                                DefaultPictureID: defaultPictureID
                            },
                            beforeSend: function () {
                                showLoading();
                            },
                            success: function (data) {
                                    debugger
                                if (data.Status == 200) {
                                    showOkClose(data.Message);
                                    closePopup();
                                    DefaultPictureSearch();
                                } else {
                                    showError(data.Message);
                                }
                        },
                            error: function (aa) {
                                debugger;
                            alert(aa);
                            },
                            complete: function () {
                                hideLoading();
                            }
                    });

 

 

 

   /// 
        /// 将 Stream 转成 byte[]
        /// 
        /// 
        /// 
    private byte[] StreamToBytes(Stream stream)
    {
        byte[] bytes = new byte[stream.Length];
        stream.Read(bytes, 0, bytes.Length);
        // 设置当前流的位置为流的开始 
        stream.Seek(0, SeekOrigin.Begin);
        return bytes;
    }
    /// <summary>
    /// 检查文件是否合格,不合格返回错误信息,合格返回空字符
    /// </summary>
    /// <param name="file"></param>
    /// <returns></returns>
    private string CheckUploadFile(HttpPostedFileBase file)
    {
        //判断文件必须小于2M 格式必须PNG JPG
        if (file.ContentType != "image/png" && file.ContentType != "image/jpeg")
        {
          return  "Upload failed! Picture type can only be JPG or PNG.";
        }
        if (file.ContentLength / 1024 > 1024 * 2)
        {
            return"Upload failed! Image size can not be greater than 2M.";
        }
        return "";
    }
    public ActionResult Save(int DefaultPictureID, string DefaultPictureName, HttpPostedFileBase file)
    {
        bool isSaveSuccess = true;
        var DefaultPicture = new DefaultPictureItem();
        if (DefaultPictureID > 0)//编辑
        { //编辑时可以运行File为Null,表示用户没有修改图片
            var defaultPicModel = _defaultPictureService.GetByID(DefaultPictureID);//获取数据库中的
            defaultPicModel.DefaultPictureName = DefaultPictureName;
            defaultPicModel.UpdateBy = "testUser";
            defaultPicModel.UpdateDate = DateTime.Now;
            if (file!=null)
            {
                //判断文件必须小于2M 格式必须PNG JPG
                var errorMsg = CheckUploadFile(file);
                if (!string.IsNullOrEmpty(errorMsg))
                {
                    return Error(errorMsg);
                }
                var fileStream = file.InputStream;
                defaultPicModel.DefaultPictureContent = StreamToBytes(fileStream);
                DefaultPicture.DefaultPictureHaskKey = Guid.NewGuid().ToString();
            }
            isSaveSuccess = _defaultPictureService.Update(defaultPicModel);
        }
        else
        {//新增
            if (file == null)//新增的时候文件内容是必须得

{
return Error("Upload failed! Image content can not be empty");
}
DefaultPicture.DefaultPictureName
= DefaultPictureName;
DefaultPicture.DefaultPictureHaskKey
= Guid.NewGuid().ToString();
DefaultPicture.CreateBy
= "testUser";
DefaultPicture.CreateDate
= DateTime.Now;
DefaultPicture.UpdateBy
= "testUser";
DefaultPicture.UpdateDate
= DateTime.Now;
//获取文件的内容
//判断文件必须小于2M 格式必须PNG JPG
var errorMsg = CheckUploadFile(file);
if (!string.IsNullOrEmpty(errorMsg))
{
return Error(errorMsg);
}
var fileStream = file.InputStream;
DefaultPicture.DefaultPictureContent
= StreamToBytes(fileStream);
isSaveSuccess
= _defaultPictureService.Update(DefaultPicture);
}
if (isSaveSuccess)
{
return Success("Save Success");
}
else
{
return Error("Save Failed");
}
}

 

 



原文:https://www.cnblogs.com/sunny3158/p/14552912.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐