C# 做微信小程序后台,基本服务器配置 以及 图片上传

转载地址https://blog.csdn.net/weixin_37752503/article/details/81007259
最近参加腾讯的高校微信小程序大赛,用C#做过几个网站,便用C#做后台写接口,在操作的过程中遇到了很多问题。由于C#的生态(C#是最好的语言,不接受反驳),网上资料很少,一边摸索着一边写,还是很艰难的,就先写个总结吧。

一、图片文件上传
1.1基本上传代码
刚开开始做图片上传的时候,前端代码可移步到腾讯小程序的开发文档点击打开链接
前端代码 – 文档里的接口调用

  audioPlay(){
    wx.chooseImage({
      success(res) {
        const tempFilePaths = res.tempFilePaths
        wx.uploadFile({
          url: 'http://*******/api/Values/Get_photo', // 仅为示例,非真实的接口地址
          filePath: tempFilePaths[0],
          name: 'upload',
          formData: {
            user: 'test'
          },
          success(res) {
            console.log('success', res.data,res.statusCode)
            // do something
          },
          fail(res) {
            const data = res.data
            wx.showModal({
              title: 'fail',
              content: 'fail',
            })
            // do something
          },         
        })
      }
    })
    innerAudioContext.play()
  },

后端代码如下:

        [HttpPost]
        public string Get_photo()
        {
            string step = null;
            try
            {
                //之前调试是因为路径下一直没有此目录。
                string path = "/image/"; //路径使用"image\\" 和"/image/"都可以
                HttpPostedFile file = System.Web.HttpContext.Current.Request.Files["upload"];//接收指定文件名文件
                //获取文件
                if (file != null)
                {                   
                    Stream sr = file.InputStream;        //文件流
                    Bitmap bitmap = (Bitmap)Bitmap.FromStream(sr);
                    path += file.FileName;
                    step = path;
                    //~表示 Request.ApplicationPath
                    //获取到的路径为E:\\WGY\\后端学习\\WebAPI_TEST\\UploadImage\\UploadImage
                    string currentpath = System.Web.HttpContext.Current.Server.MapPath("~");
                    step = "saving " + currentpath + path;
                    bitmap.Save(currentpath + path);                   
                }
                return path;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

大致思路就是,获取前端Post的文件“upload”并将图片保存到相对目录“tmp”目录下,并返回保存路径。
1.2本地服务器和云服务器运行不一致的问题

当我在本地服务器上传的时候没有问题,当放在云服务器时一直报错,上传失败。最后,找了各种博客,才知道,C#默认关闭网络服务的功能,就在web.config文件里加了下面的配置就能接收远程的“Get”和“Post”请求了。

<webServices>
      <protocols>
        <add name="HttpGet" />
        <add name="HttpPost" />
      </protocols>
 </webServices>

1.3上传大小的限制
文件上传之后,发现上传的文件只能是40k左右,一度找不到原因。最后,快要提交的时候看了老哥的博客点击打开链接(链接打不开了,大概方法就是打开IIS配置文件进入: C:\Windows\System32\inetsrv\config\schema\IIS_schema 找到name=“uploadReadAheadSize” 注意看它的value值大概就是48xxx多少的换算成KB刚好和限制图片上传的大小近似修改完重启IIS即可 . 如果没有修改权限自行百度搜索教程),解决了问题,原来是自家自带的坑,真感觉到了这个世界对C#开发者的恶意。不过这种形式的改变会存在一个问题,当你的iis更新之后,配置文件会被重新覆盖,一时之间找不到很好的解决方案,先这么填坑吧。
1.4总结
这次开发学到了点东西,因为做图像处理的,所以对图像处理有了一定的了解,C#的生态什么时候能变好点啊,啊,啊, 啊。。。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。 阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。 “微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。 购课请咨询qq2326321088
微信小程序上传图片功能是指在微信小程序中,用户可以选择图片文件并将其上传到后台服务器或云存储等位置。该功能在许多小程序中被广泛使用,例如社交应用、电商应用等。下面是实现微信小程序上传图片功能的一种方式: 首先,需要在小程序的页面中添加一个按钮,用于触发选择图片的操作。用户点击按钮后,可以调用微信小程序提供的wx.chooseImage方法,打开系统相册或拍照功能,供用户选择图片文件。选择完毕后,可以获取到一个临时文件路径。 然后,在选择图片成功的回调函数中,可以调用微信小程序提供的wx.uploadFile方法,将选择的图片文件上传到后台服务器或云存储。在uploadFile方法中,需要指定上传的URL地址、文件路径、文件名等参数。上传过程中,可以通过监听上传进度的回调函数,实时获取上传进度,并在页面中展示上传进度条。 接着,后台服务器或云存储接收到上传的图片文件后,可以进行相关的处理,例如存储到数据库或云存储中,并返回处理结果给小程序小程序可以在上传成功的回调函数中处理服务器返回的结果,例如展示上传成功的提示信息、刷新页面等。 总之,微信小程序上传图片功能可以通过调用微信小程序提供的API,结合后台服务器或云存储的处理逻辑实现。通过选择图片、上传文件和处理结果等步骤,用户可以方便地上传图片并在小程序中进行相关操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值