C#接口,一般处理程序,webapi,文件上传,图片,视频,文本上传(转载)

1 在一般处理程序中写接口,上传方法


```csharp
private void UserUploadImg2(HttpContext context)
        {
            string returnValue = "";

            HttpPostedFile _upfile = context.Request.Files[0];
          
            long lngUploadFileSize = _upfile.ContentLength;//byte  文件大小
          
                if (_upfile == null)
                {
                    returnValue = "{\"status\": \"-1\",\"msg\": \"上传文件为空,请重试!\"}";
                    ResponseWriteEnd(context, returnValue);
                }
                else
                {
                    string Thumb = string.Empty;
                    string fileName = _upfile.FileName;
                    string fileType = fileName.Substring(fileName.LastIndexOf(".") + 1).ToLower();//图片后缀

                    string strTypeDir = "";
                    ImageInfo othumb;
                    bool blnIsFileTypeValid = false;
                    int intFileTypeId = 0;
                    switch (fileType)
                    {

                        //音频 .mp3
                        case "mp3":
                            strTypeDir = "voice";
                            blnIsFileTypeValid = true;
                            intFileTypeId = (int)UploadFileTypeEnum.Voice;
                            break;
                        //图片
                        case "jpg":
                        case "jpeg":
                        case "gif":
                        case "png":
                        case "bmp":
                            strTypeDir = "img";
                            othumb = new ImageInfo();
                            blnIsFileTypeValid = true;
                            intFileTypeId = (int)UploadFileTypeEnum.Picture;
                            break;
                        //视频
                        case "3gp":
                        case "flv":
                        case "mp4":
                            strTypeDir = "video";
                            blnIsFileTypeValid = true;
                            intFileTypeId = (int)UploadFileTypeEnum.Video;
                            break;
                        //文本
                        case "txt":
                        case "doc":
                        case "docx":
                        case "ppt":
                        case "pptx":
                        case "xls":
                        case "xlsx":
                        case "pdf":
                            strTypeDir = "word";
                            blnIsFileTypeValid = true;
                            intFileTypeId = (int)UploadFileTypeEnum.Word;
                            break;
                        default:
                            strTypeDir = "attach";
                            returnValue = "{\"status\": \"-1\",\"msg\": \"您上传的文件格式不正确!\"}";
                            ResponseWriteEnd(context, returnValue);
                            break;
                    }
                    //验证格式
                    if (!blnIsFileTypeValid)
                    {

                        returnValue = "{\"status\": \"-1\",\"msg\": \"您上传的文件格式不正确!\"}";
                        ResponseWriteEnd(context, returnValue);
                    }
                    int intUploadLimimtSize = 0;
                   
                    //根据配置文件,验证上传文件大小
                    if (intUploadLimimtSize > 0)
                    {
                        if (lngUploadFileSize > (intUploadLimimtSize * 1024))
                        {
                            returnValue = "{\"status\": \"-1\",\"msg\": \"上传文件大小超过系统设置,此类型作品上传不能超过!\"}";
                            ResponseWriteEnd(context, returnValue);
                        }
                    }
                    string strSavePath = "";
                    if (strTypeDir != "")
                    {
                        strSavePath = "/uploads/res/" +  strTypeDir + "/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/";
                    }
                    else
                    {
                        strSavePath = "/uploads/res/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/";
                    }

                    string imagesPath = HttpContext.Current.Server.MapPath(strSavePath);//保存图片 
                    if (!System.IO.Directory.Exists(imagesPath))
                    {
                        System.IO.Directory.CreateDirectory(imagesPath);
                    }
                    string strNowTimeString = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
                    var saveName = strSavePath + strNowTimeString + "." + fileType;//图片地址,半路径
                 
                    _upfile.SaveAs(HttpContext.Current.Server.MapPath(saveName));//保存图片 

                 


                    returnValue = "{\"status\": \"0\" ,\"msg\": \"上传成功!\",\"src\":\"" + saveName +  "\" }";
                    ResponseWriteEnd(context, returnValue);
                }
           

        }
 
private void UserUploadImg2(HttpContext context)
        {
            string returnValue = "";

            HttpPostedFile _upfile = context.Request.Files[0];
          
            long lngUploadFileSize = _upfile.ContentLength;//byte  文件大小
          
                if (_upfile == null)
                {
                    returnValue = "{\"status\": \"-1\",\"msg\": \"上传文件为空,请重试!\"}";
                    ResponseWriteEnd(context, returnValue);
                }
                else
                {
                    string Thumb = string.Empty;
                    string fileName = _upfile.FileName;
                    string fileType = fileName.Substring(fileName.LastIndexOf(".") + 1).ToLower();//图片后缀

                    string strTypeDir = "";
                    ImageInfo othumb;
                    bool blnIsFileTypeValid = false;
                    int intFileTypeId = 0;
                    switch (fileType)
                    {

                        //音频 .mp3
                        case "mp3":
                            strTypeDir = "voice";
                            blnIsFileTypeValid = true;
                            intFileTypeId = (int)UploadFileTypeEnum.Voice;
                            break;
                        //图片
                        case "jpg":
                        case "jpeg":
                        case "gif":
                        case "png":
                        case "bmp":
                            strTypeDir = "img";
                            othumb = new ImageInfo();
                            blnIsFileTypeValid = true;
                            intFileTypeId = (int)UploadFileTypeEnum.Picture;
                            break;
                        //视频
                        case "3gp":
                        case "flv":
                        case "mp4":
                            strTypeDir = "video";
                            blnIsFileTypeValid = true;
                            intFileTypeId = (int)UploadFileTypeEnum.Video;
                            break;
                        //文本
                        case "txt":
                        case "doc":
                        case "docx":
                        case "ppt":
                        case "pptx":
                        case "xls":
                        case "xlsx":
                        case "pdf":
                            strTypeDir = "word";
                            blnIsFileTypeValid = true;
                            intFileTypeId = (int)UploadFileTypeEnum.Word;
                            break;
                        default:
                            strTypeDir = "attach";
                            returnValue = "{\"status\": \"-1\",\"msg\": \"您上传的文件格式不正确!\"}";
                            ResponseWriteEnd(context, returnValue);
                            break;
                    }
                    //验证格式
                    if (!blnIsFileTypeValid)
                    {

                        returnValue = "{\"status\": \"-1\",\"msg\": \"您上传的文件格式不正确!\"}";
                        ResponseWriteEnd(context, returnValue);
                    }
                    int intUploadLimimtSize = 0;
                   
                    //根据配置文件,验证上传文件大小
                    if (intUploadLimimtSize > 0)
                    {
                        if (lngUploadFileSize > (intUploadLimimtSize * 1024))
                        {
                            returnValue = "{\"status\": \"-1\",\"msg\": \"上传文件大小超过系统设置,此类型作品上传不能超过!\"}";
                            ResponseWriteEnd(context, returnValue);
                        }
                    }
                    string strSavePath = "";
                    if (strTypeDir != "")
                    {
                        strSavePath = "/uploads/res/" +  strTypeDir + "/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/";
                    }
                    else
                    {
                        strSavePath = "/uploads/res/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/";
                    }

                    string imagesPath = HttpContext.Current.Server.MapPath(strSavePath);//保存图片 
                    if (!System.IO.Directory.Exists(imagesPath))
                    {
                        System.IO.Directory.CreateDirectory(imagesPath);
                    }
                    string strNowTimeString = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
                    var saveName = strSavePath + strNowTimeString + "." + fileType;//图片地址,半路径
                 
                    _upfile.SaveAs(HttpContext.Current.Server.MapPath(saveName));//保存图片 

                 


                    returnValue = "{\"status\": \"0\" ,\"msg\": \"上传成功!\",\"src\":\"" + saveName +  "\" }";
                    ResponseWriteEnd(context, returnValue);
                }
           

        }

2 在webapi写接口,上传方法

  [AcceptVerbs("GET", "POST")]
        [Route("ImgUpload")]
        [ResponseType(typeof(ReturnResult))]
        public HttpResponseMessage ImgUpload()
        {
            ReturnResult2 result = new ReturnResult2() { code = "", msg = "", total = 0 };
            HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
            HttpRequestBase request = context.Request;//定义传统request对象   
            try
            {
                var files = request.Files;
                if (files.Count > 0)
                {
                    var dir = context.Request["dir"];
                    string imgNametime = DateTime.Now.ToString("yyyyMMdd");
                    string Path = "/";
                    var src = "";
                    if (!string.IsNullOrEmpty(dir))
                    {
                        Path += dir.Trim('/') + "/";
                    }
                    var PathNew = Path + imgNametime + "/";

                    List<string> listSrc = new List<string>();
                    //如果是多文件,循环
                    for (int i = 0; i < files.Count; i++)
                    {
                        var File2 = files[i];
                        string FileNamef = File2.FileName; //上传的原文件名
                        string[] strSpil2 = File2.FileName.Split('.');//将此地址用.号进行分割(img/1.jpg)
                        string strEnd2 = strSpil2[strSpil2.Length - 1].ToLower();//得到后面的

                        string imgName = Guid.NewGuid().ToString().Replace("-", "") + "." + strEnd2;

                        if (FileNamef != null && FileNamef != "")
                        {
                            //创建文件夹
                            string imagesPath = HttpContext.Current.Server.MapPath(PathNew);
                            if (!System.IO.Directory.Exists(imagesPath))
                                System.IO.Directory.CreateDirectory(imagesPath);

                            File2.SaveAs(imagesPath + imgName); //保存操作
                            src = PathNew + imgName;//图片保存路径

                            listSrc.Add(src);
                        }
                        else
                        {
                            result.code = "10001";
                            result.msg = "操作失败";
                            return SQLBase.toJson(result);
                        }
                    }
                    result.data = listSrc;
                    result.code = "10000";
                    result.msg = "操作成功";
                    return SQLBase.toJson(result);
                }
                else
                {
                    result.code = "10001";
                    result.msg = "操作失败,未接收到上传文件";
                    return SQLBase.toJson(result);
                }
            }
            catch (Exception ex)
            {
                result.code = "10002";
                result.msg = "获取失败,程序异常";
                result.data = null;
                log = LogFactory.GetLogger(this.GetType().ToString());
                log.Error(ex.LogErrorTxt());
            }
            return SQLBase.toJson(result);
        }

————————————————
版权声明:本文为CSDN博主「zhang123csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zhang123csdn/article/details/123503636

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序图片功能是指在微信小程序中,用户可以选择图片文件并将其上到后台服务器或云存储等位置。该功能在许多小程序中被广泛使用,例如社交应用、电商应用等。下面是实现微信小程序图片功能的一种方式: 首先,需要在小程序的页面中添加一个按钮,用于触发选择图片的操作。用户点击按钮后,可以调用微信小程序提供的wx.chooseImage方法,打开系统相册或拍照功能,供用户选择图片文件。选择完毕后,可以获取到一个临时文件路径。 然后,在选择图片成功的回调函数中,可以调用微信小程序提供的wx.uploadFile方法,将选择的图片文件到后台服务器或云存储。在uploadFile方法中,需要指定上的URL地址、文件路径、文件名等参数。上过程中,可以通过监听上进度的回调函数,实时获取上进度,并在页面中展示上进度条。 接着,后台服务器或云存储接收到上图片文件后,可以进行相关的处理,例如存储到数据库或云存储中,并返回处理结果给小程序。小程序可以在上成功的回调函数中处理服务器返回的结果,例如展示上成功的提示信息、刷新页面等。 总之,微信小程序图片功能可以通过调用微信小程序提供的API,结合后台服务器或云存储的处理逻辑实现。通过选择图片、上文件处理结果等步骤,用户可以方便地上图片并在小程序中进行相关操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值