• .net core使用百度webupload上传图片


    后端代码:

    /// <summary>
            /// 图片上传,上传路径: "/Uploads/Images/" + folder + "/" + saveName
            /// </summary>
            /// <param name="fileData"></param>
            /// <returns></returns>
            [HttpPost]
            public JsonResult UploadImage([FromServices]IWebHostEnvironment environment,string folder)
            {
                try
                {
                    var files = Request.Form.Files;
                    //string contentRootPath = environment.ContentRootPath;//项目所在路径
                    string webRootPath = environment.WebRootPath;//wwwroot文件夹所在路径 
                    string filePath = webRootPath + "/Uploads/Images/" + folder + "/";
                    string fullPath = "";
                    string uploadPath = "";
    
                    foreach (var formFile in files)
                    {
                        string fileName = Path.GetFileName(formFile.FileName);// 原始文件名称
                        string fileExtension = Path.GetExtension(fileName).ToLower(); // 文件扩展名
                        string saveName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + fileExtension; // 保存文件名称
                        int filesize = int.Parse(formFile.Length.ToString()) / 1024;//图片大小(KB)
                        if (filesize > 5120 || filesize <= 2 || (fileExtension != ".jpg" && fileExtension != ".png" && fileExtension != ".gif"))
                        {
                            return Json(new { Success = false, Message = "上传失败!
    请上传jpg/png/gif格式图片,文件大小不要超过5MB也不要小于2K" });
                        }
                        fullPath = Path.Combine(filePath, saveName);
                        if (!Directory.Exists(filePath))
                        {
                            Directory.CreateDirectory(filePath);
                        }
                        using (var stream = new FileStream(fullPath, FileMode.CreateNew))
                        {
                            formFile.CopyTo(stream);
                        }
                        uploadPath = "/Uploads/Images/" + folder + "/" + saveName;
                    }
    
                    return Json(new { Success = true, FilePath = uploadPath });
                }
                catch (Exception e)
                {
                    NLogHelper.WriteDebug("图片上传方法异常:"+ e.Message.ToString());
                    return Json(new { Success = false, Message = e.Message.ToString() });
                }
               
            }

    前端代码:

    @model Dw.Models.Article.Article_Category
    @{
        ViewBag.Title = "文章类别管理";
        Layout = "~/Views/Shared/_Form.cshtml";
    }
    
    <script>
        var keyValue = '@ViewBag.keyValue';
        var parentId = '@ViewBag.parentId';
        $(function () {
            initControl();
        })
        //初始化控件
        function initControl() {
            //上级栏目
            $("#ParentId").ComboBoxTree({
                url: "/ArticleManage/ArticleCategory/GetTreeJson",
                description: "==请选择==",
                height: "260px",
                allowSearch: true
            });
            //获取表单
            if (!!keyValue) {
                $.SetForm({
                    url: "/ArticleManage/ArticleCategory/GetFormJson",
                    param: { keyValue: keyValue },
                    success: function (data) {
                        $("#form1").SetWebControls(data);
                    }
                });
            } else {
                $("#ParentId").ComboBoxTreeSetValue(parentId);
            }
        }
        //保存表单
        function AcceptClick() {
            if (!$('#form1').Validform()) {
                return false;
            }
            var postData = $("#form1").GetWebControls(keyValue);
            if (postData["ParentId"] == "") {
                postData["ParentId"] = 0;
            }
            $.SaveForm({
                url: "/ArticleManage/ArticleCategory/SaveForm?keyValue=" + keyValue,
                param: postData,
                loading: "正在保存数据...",
                success: function () {
                    $.currentIframe().$("#gridTable").resetSelection();
                    $.currentIframe().$("#gridTable").trigger("reloadGrid");
                }
            })
        }
    </script>
    <div style="margin-left: 10px; margin-top: 20px; margin-right: 30px;">
        <table class="form">
            @Html.HiddenFor(model => model.CategoryId)
            @Html.HiddenFor(model => model.CreateDate)
            @Html.HiddenFor(model => model.CreateUserId)
            @Html.HiddenFor(model => model.CreateUserName)
            <tr>
                <th class="formTitle">名称<font face="宋体">*</font></th>
                <td class="formValue" colspan="3">
                    @Html.TextBoxFor(model => model.Name, new { type = "text", onblur = "$.ExistField(this.id,'/ArticleManage/ArticleCategory/ExistName')", @class = "form-control" })
                </td>
            </tr>
            <tr>
                <th class="formTitle">上级栏目</th>
                <td class="formValue" colspan="3">
                    <div id="ParentId" type="selectTree" class="ui-select">
                    </div>
                </td>
            </tr>
            <tr>
                <th class="formTitle">导航图片</th>
                <td class="formValue" colspan="3">
                    @*<input type="file" id="picture_upload" name="picture_upload" value='导航图片' />*@
                    <div id="uploader">
                        <input type="hidden" value="hid_blog_image"/>
                        <div id="thelist" class="uploader-list"></div>
                        @*<a href="javascript:void(0)" Onclick="remove_pic()" id="minus">
                                <span class="glyphicon glyphicon-remove"></span>
                            </a>*@
                        <!--用来存放文件信息-->
                        <div class="btns">
                            <div id="picker">选择文件</div>
                            @*<button id="ctlBtn" class="btn btn-default">开始上传</button>*@
                        </div>
                    </div>
                </td>
            </tr>
            <tr>
                <th class="formTitle">图片路径</th>
                <td class="formValue" colspan="3">
                    @Html.TextBoxFor(m => m.PictureUrl, new { type = "text", @class = "form-control" })
                </td>
            </tr>
            <tr>
                <th class="formTitle">
                    状态
                </th>
                <td class="formValue" colspan="3">
                    <select id="EnabledMark" name="EnabledMark">
                        <option value="1">有效</option>
                        <option value="0">无效</option>
                    </select>
                </td>
            </tr>
            <tr>
                <th class="formTitle">
                    排序
                </th>
                <td class="formValue" colspan="3">
                    @Html.TextBoxFor(model => model.SortCode, new { type = "text", @class = "form-control" })
                </td>
            </tr>
            <tr>
                <th class="formTitle" valign="top" style="padding-top: 4px;">
                    备注
                </th>
                <td class="formValue" colspan="3">
                    @Html.TextBoxFor(model => model.Description, new { type = "text", @class = "form-control", style = "height: 70px;" })
                </td>
            </tr>
        </table>
    </div>
    
    
    <link href="~/scripts/plugins/webuploader/webuploader.css" rel="stylesheet" />
    <script src="~/scripts/plugins/webuploader/webuploader.js"></script>
    <script type="text/javascript">
        var BASE_URL = '';
        var uploader = WebUploader.create({
            auto: true,
            // swf文件路径
            swf: BASE_URL + '/scripts/plugins/webuploader/Uploader.swf',
            // 文件接收服务端。
            server: '/Uploads/UploadImage?folder=ArticleCategory',
            // 选择文件的按钮。可选。
            // 内部根据当前运行是创建,可能是input元素,也可能是flash.
            pick: '#picker',
            // 只允许选择图片文件。
            accept: {
                title: 'Images',
                extensions: 'gif,jpg,jpeg,bmp,png',
                mimeTypes: 'image/*'
            }
        });
    
        uploader.on('fileQueued', function (file) {
            $list = $('#thelist');
            $list.append('<div id="' + file.id + '" class="item">' +
                '<h4 class="info">' + file.name + '</h4>' +
                '<p class="state">等待上传...</p>' +
                '</div>');
        });
    
        uploader.on('uploadSuccess', function (file, response) {
            var data = eval(response);
            if (data.success) {
                $('#PictureUrl').val(data.filePath);
            }
            else {
                alert(data.message);
            }
            $('#' + file.id).find('p.state').text('已上传');
        });
    
        uploader.on('uploadError', function (file) {
            $('#' + file.id).find('p.state').text('上传出错');
        });
    
        uploader.on('uploadComplete', function (file) {
            $('#' + file.id).find('.progress').fadeOut();
        });
    
        uploader.on('uploadAccept', function (file, response) {
            var data = eval(response);
            if (data.success) {
                $('#thelist').html('<img src="' + data.filePath + '" style="200px;margin-bottom:20px" />');
                $('#hid_blog_image').val(data.filePath);
                $('#minus').show();
            }
        });
    
        function remove_pic() {
            $('#thelist').html('');
            $('#hid_blog_image').val('');
            $('#minus').hide();
        }
    </script>

     

    webuploader控件地址: http://fex.baidu.com/webuploader/getting-started.html

  • 相关阅读:
    重构的体会——类属性优先移动
    jQuery实现无限循环滚动公告
    jquery菜单左右翻屏效果
    44种IE css bug实例测试总结
    IE6不支持position:fixed的解决方法
    DedeCMS会员排行调用代码,实现连接到会员空间
    程序员们 不要想一辈子靠技术混饭吃
    Load JSON data with jQuery, PHP and MySQL
    mysql 实现行号的方法——如何获取当前记录所在行号
    jQuery精仿手机上的翻牌效果菜单
  • 原文地址:https://www.cnblogs.com/yechangzhong-826217795/p/12046622.html
Copyright © 2020-2023  润新知