C#做⼩程序后台,基本服务器配置以及图⽚上传
⼀、图⽚⽂件上传
1.1基本上传代码
刚开开始做图⽚上传的时候,前端代码可移步到腾讯⼩程序的开发⽂档,
前端代码 – ⽂档⾥的接⼝调⽤
audioPlay(){定制小程序需要多少钱?
wx.chooseImage({
success(res) {
const tempFilePaths = pFilePaths
wx.uploadFile({
url: '*******/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#默认关闭⽹络服务的功能,就在fig⽂件⾥加了下⾯的配置就能接收远程的“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#的⽣态什么时候能变好点啊,啊,啊, 啊。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论