好火药,星辰飞飞,郭mini露点
前台html
<img style="display:none;" id="showimg" src="" /> <br /> <!--下面的隐藏域主要用来改变file类型的input的值,但是file类型的input的值出于安全考虑不让修改,但是表单提交后需要处理该值(放置图片路径)来显示服务器上的图片--> <input type="hidden" id="img" name="uploadimg" /> 请选择上传微信二维码收款图片:<input type="file" id="uploadimg" onchange="selectimg(this);" runat="server" />
js
function selectimg(file) { if (!file.files || !file.files[0]) { return; } var reader = new filereader();//读取文件 reader.onload = function (event) {//文件读取完成的回调函数 image = document.getelementbyid('showimg'); $('#showimg').show(); image.src = event.target.result;//读入文件的base64数据(可直接作为src属性来显示图片) //图片读取完成的回调函数(必须加上否则数据读入不完整导致出错!) image.onload = function () { var formdata = new formdata(); formdata.append("file", $("#uploadimg")[0].files[0]); $.ajax({ type: "post", url: "/ashx/uploadimg.ashx",//返回图片路径 data: formdata, cache: false, contenttype: false, processdata: false, datatype: "json", success: function (result) { if (result.imgurl!= "" && result.error=="") { alert("上传成功"); $('#img').val(result.imgurl); } else { alert("上传失败,出现错误:" + result.error); } } }); } } //将文件已data url的形式读入页面 reader.readasdataurl(file.files[0]); }
后台ashx
public void processrequest(httpcontext context) { context.response.contenttype = "text/plain"; string name = ""; string savename = ""; string error = ""; try { httpfilecollection _file = context.request.files; if (_file.count > 0) { //文件大小 long size = _file[0].contentlength; //文件类型 string type = _file[0].contenttype; //文件名 //string name = _file[0].filename; name = _file[0].filename; //文件格式 string _tp = system.io.path.getextension(name); if (_tp.tolower() == ".jpg" || _tp.tolower() == ".jpeg" || _tp.tolower() == ".gif" || _tp.tolower() == ".png" || _tp.tolower() == ".swf") { //获取文件流 system.io.stream stream = _file[0].inputstream; //保存文件 savename = datetime.now.tostring("yyyymmddhhmmss") + _tp; byte[] bytes = new byte[stream.length]; stream.read(bytes, 0, bytes.length); // 设置当前流的位置为流的开始 stream.seek(0, seekorigin.begin); using (filestream fswrite = new filestream(@"c:\image\" + savename, filemode.append)) { fswrite.write(bytes, 0, bytes.length); }; } } } catch (exception ex) { error = ex.tostring(); } context.response.write("{\"imgurl\":\""+"c:\image\" + savename + "\",\"error\":\""+ error + "\"}"); }
由于业务原因删除了部分代码,此随笔仅供参考,可能尚有部分无用代码未删除干净,如有错误,欢迎指出
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论