formdata java后台接受

前台用formdata传数据,后台怎么用java接收,前台使用js使用ajax传数据不是jquery

1个回答

qq_32182461
qq_32182461 代码有一半看不到
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Formdata图片传输,java后台解析问题
这是前端代码: var formdata = new FormData(); formdata.append("files",files); var json = {"files":files}; $.ajax({ type: "post", url: "http://localhost:8080/Ajax1/practise", async: true, data: "files="+formdata, dataType: "text", success: function(data) { alert(data); }, error: function() { alert("登录出错"); } }); java后台要什么解析,通过 String fi = request.getParameter("files"); 输出是个对象 [object FormData] 要怎么解析formdata
formData怎么传文件数组到Java后台?
![图片说明](https://img-ask.csdn.net/upload/201709/15/1505458691_647301.png) 首先后台是springMVC的MultipartFile 数组类型接收 现在问题是 我前台formData怎么将多个 ``` <input type="file"> ``` 给传到后台让后台接收?
java后台将base64字符串转换为PDF后生成的PDF打不开怎么回事呀
![图片说明](https://img-ask.csdn.net/upload/201910/12/1570868633_161609.jpg) 后台代码: public static void base64StringToPdf(String base64Content,String filePath){ File file = new File(filePath);// 将原来参数修改为字符串 BASE64Decoder decoder = new BASE64Decoder(); BufferedInputStream bin = null; FileOutputStream fout = null; BufferedOutputStream bout = null; try { //将base64编码的字符串解码成字节数组 byte[] bytes = decoder.decodeBuffer(base64Content); //创建一个将bytes作为其缓冲区的ByteArrayInputStream对象 ByteArrayInputStream bais = new ByteArrayInputStream(bytes); //创建从底层输入流中读取数据的缓冲输入流对象 bin = new BufferedInputStream(bais); //创建到指定文件的输出流 fout = new FileOutputStream(file); //为文件输出流对接缓冲输出流对象 bout = new BufferedOutputStream(fout); byte[] buffers = new byte[1024]; int len = bin.read(buffers); while(len != -1){ bout.write(buffers, 0, len); len = bin.read(buffers); } //刷新此输出流并强制写出所有缓冲的输出字节,必须这行代码,否则有可能有问题 bout.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { bout.close(); fout.close(); bin.close(); } catch (IOException e) { e.printStackTrace(); } } } 前台是将页面展示的数据图标什么的生成PDF 前台代码: function downloadofpdf(){ var varname = $("#taskid").text(); if(confirm("您确认下载该PDF文件吗?")){ var target = document.getElementById("bodyid"); target.style.background = "#FFFFFF"; // if(pdfName==''||pdfName==undefined) pdfName= getNowFormatDate(); html2canvas(target, { onrendered:function(canvas) { var contentWidth = canvas.width; var contentHeight = canvas.height; //一页pdf显示html页面生成的canvas高度; var pageHeight = contentWidth /1592.28 * 841.89; //未生成pdf的html页面高度 var leftHeight = contentHeight; //页面偏移 var position = 0; //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高 var imgWidth = 595.28; var imgHeight = 592.28/contentWidth * contentHeight; var pageData = canvas.toDataURL('image/jpeg', 1.0); var pdf = new jsPDF('', 'pt', 'a4'); //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89) //当内容未超过pdf一页显示的范围,无需分页 if (leftHeight < pageHeight) { pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight ); } else { while(leftHeight > 0) { pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight); leftHeight -= pageHeight; position -= 841.89; //避免添加空白页 if(leftHeight > 0) { pdf.addPage(); } } } pdf.save(varname+".pdf"); // 将pdf输入为base格式的字符串 var buffer = pdf.output("datauristring"); // // 将base64格式的字符串转换为file文件 // var myfile = dataURLtoFile(buffer, varname); // var formdata = new FormData(); // formdata.append(name, myfile); $.post("/riskManage/uploadpdf",{data:JSON.stringify({formdata:buffer})},function(result){ //alert("hao"); }) //sc(); }, background: "#fff" }) } }
客户端html5采用formdata提交信息,后台怎么接收信息并返回呢
后台用javaWeb来写,接收手机端formdata提交过来的信息,代码怎么接收并返回成功信息呢,谁写过类似的,提供个代码示例 html5用表单formdata来提交数据,使用ajax发送网络请求,提交到后台的数据格式是json的还是以对象形式过去的???
java后台解决跨域访问,为什么前端还不能访问上传文件
``` function upload() { var form1 = document.createElement("form"); form1.setAttribute("id","form1"); document.body.appendChild(form1) var inputObj=document.createElement('input') inputObj.setAttribute('id','file'); inputObj.setAttribute('type','file'); inputObj.setAttribute('name','file'); inputObj.setAttribute("style",'visibility:hidden'); inputObj.click() form1.appendChild(inputObj) inputObj.onchange = function () { form1.method ="POST"; form1.enctype = "multipart/form-data"; $("#form1").submit(function () { var formData = new FormData(); formData.append("file",$("#file")[0]); $.ajax({ url:"http://localhost:8080/file/upload.action", type:"POST", contentType:"multipart/form-data", data:formData, cache:false, processData:false, success:function (data) { console.log(data) } }) }) } } ``` 如上代码,html为了美观只用了一个button,button点击后调用这个函数,然后用js创建form表单和input,这里问题来了:如果单单表单提交,没有问题,但是会跳转页面;如果单单用ajax,出现跨域(服务器端已经添加了header还是会有跨域问题), 再就是使用如上的代码,form表单中使用ajax请求,没有出现任何问题并且文件没有上传,好像是 $("#form1").submit(function () )没有调用,小白求解。
ant+vue+springboot 上传文件时接收不到文件
``` <a-upload name="file" listType="picture-card" :fileList="fileList" :multiple="true" @preview="handlePreview" :beforeUpload="beforeUpload" @change="handleChange" > <div v-if="fileList.length < 1"> <a-icon type="plus" /> <div class="ant-upload-text">Upload</div> </div> </a-upload> ``` js代码如下 ``` var formData = new FormData() formData.append('file', this.fileList[0]); formData.append('userid', '1'); formData.append('systemid', '886'); this.axios( { method: 'post', url: 'http://localhost:8086/rest/uploadFileByMulti', processData: false, data: formData }) .then((response) => { alert(JSON.stringify(response)) }) .catch(function (error) { console.log(error) }) ``` 后台接受代码如下 ``` @RequestMapping("/uploadFileByMulti") @ResponseBody public AjaxResult uploadFileList(@RequestParam("file") MultipartFile file String userid, String systemid) { ...... } ``` 上传时一直报file为空
多个input 怎么上传多个图片,用ajax发送,后台用springmvc接收
<form enctype="multipart/form-data"method="POST"> Send thisfile1: <input name="file1"type="file"/> Send thisfile2: <input name="file2"type="file"/> Send thisfile3: <input name="file3"type="file"/> <input type="submit"value="Send File"/></form> --------------------------------------------------------------- var formData = new FormData(); formData.append('file', $('#file1')[0].files[0]); formData.append('file', $('#file2')[0].files[0]); formData.append('file', $('#file3')[0].files[0]); formData.append("fname",fname); formData.append("fprice",fprice); formData.append("fdetail",fdetail); formData.append("meterial",meterial); $.ajax({ url : "./insert", type : "POST", data :formData, async : true, cache : false, contentType : false, processData : false, success : function(data) { if(data=="success"){ alert("添加成功!") window.location.href="#" }else{ alert("添加失败!") } } }); 请问后台springmvc的controller怎么接收,我试了好就都不行。
关于Java批量导入节目,求思路
导入材料:节目excel(excel一行就是一个节目);Zip压缩包(节目图片)。 需求:导入的excel大概有300个节目,图片大概有900张大概2G。 ![图片说明](https://img-ask.csdn.net/upload/201801/26/1516949745_1002.png) 做个假设:一次请求,把上传的excel,zip读入内存;excel把它解析成List,一个元素对应excel的一行。zip解析为一个Map,key图片名字,value图片流。图片流和excel找到映射关系后,做裁图(特定尺寸)保存在服务器静态资源端。然后落值数据库。 思路:前台:new FormData(),multipart/form-data;charset=UTF-8的http的POST请求;后台springmvc的MultipartFile接受两数据。通过解析构造出合理的数据类型,落值一条一条的节目。 矛盾: 1.图片资源过大,考虑用户带宽,请求是通过http协议的。 2.效率问题 3.内存的压力 4.用多线程去提高效率 补充:对于批量这个概率不是太清楚;Zip包里边图片,一个节目对应三张。 前面的假设是针对不超过200M的上传数据,现在数据量增加了,想做一个新思路的解决方法,求大家给点点子,欢迎一起研究这个问题 感谢:各位大哥谢谢你们的建议,我回去整理整理,最终我用了谁的建议,我就把币给谁,币不多一点心意,莫怪莫怪。最终我会把我的实现思路共享给大家。
Easyui 使用dialog窗口提交form表单 数据为空
我点击打开easyUI的dialog窗口时,后台接收的数据全部为null;但我直接使用jq的打开窗口并传输数据,后台都能获取到。我看网上有人说使用了dialog文档结构改变了,找不到对应的from?该怎么改啊 * js部分 ```javascript <script type="text/javascript"> /* 显示addDiv */ function addDiv() { $("#addTab").dialog({ title : '新增', width : 600, height : 400, modal : true }) $("#addTab").dialog("open"); } /* 提交新增 */ function add() { var $dialog = $("#addDiv"); var $form = $dialog.find("form[name=addForm]"); var formData = new FormData($form[0]); console.log($form); console.log(formData); $.ajax({ url : basePath + "/goodsAdd.json", type : "post", dataType : "json", data :formData, processData : false, cache : false, contentType : false, success : function(data) { if (data.num == 1) { $.messager.alert('提示', "新增成功"); $("#datag").datagrid("reload"); } else { $.messager.alert('提示', "新增失败"); } } }); } </script> ``` * HTML部分 ```html <body> <div id="addDiv" > <form name="addForm" method="post" enctype="multipart/form-data"> <table id="addTab"> <tr> <td>商品名称:<input id="goodsname1" class="easyui-textbox" name="goodsname" style="width: 150px"></td> <td>商品价格:<input id="goodsprice1" class="easyui-numberbox" name="goodsprice" data-options="validType:'goodsprice',required:true" style="width: 150px"></td> </tr> <tr> <td>保质&emsp;期:<input id="releasedate1" class="easyui-numberbox" name="releasedate" data-options="validType:'releasedate',required:true" style="width: 150px"></td> <td>生产日期:<input id="creationdate1" class="easyui-datetimebox" name="creationdate" data-options="validType:'creationdate',required:true" style="width: 150px"></td> </tr> <tr> <td>产&emsp;&emsp;地:<input id="producingarea1" class="easyui-textbox" name="producingarea" data-options="validType:'producingarea',required:true" style="width: 150px"></td> <td>商品类型:<input id="goodstype1" class="easyui-textbox" name="goodstype" data-options="validType:'goodstype',required:true" style="width: 150px"></td> </tr> <tr> <td>商品信息:<input id="goodsinfo1" class="easyui-textbox" name="goodsinfo" data-options="validType:'goodsinfo',required:true" style="width: 150px"></td> </tr> <tr> <td colspan="2"> <div style="width: 100%; text-align: center;"> <img id="defaultImage" style="width: 250px; height: 150px; display: inline-block;" alt="默认商品" src="../../view/images/goods/wallhaven-2e3839.jpg"> </div> </td> </tr> <tr> <td colspan="2"> <div style="width: 100%; text-align: center;"> <input name="upImage" class="easyui-filebox" style="width: 300px" data-options="buttonText:'选择文件',onChange:showImage"> </div> </td> <td> <input type="hidden" id="goodsimagename" name="goodsimagename" value="wallhaven-2e3839"> <input type="hidden" id="goodssuffix" name="goodssuffix" value="jpg"> <input type="hidden" id="goodsimagetype" name="goodsimagetype" value="image/jpg"> <input type="hidden" id="goodsimagesize" name="goodsimagesize" value="8888"></td> </tr> <tr> <td colspan="2" style="text-align: center;"><a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-add',onClick:add">提交</a></td> </tr> </table> </form> </div> </body> ```
微信小程序开发,mvc能接受到请求,但是接受不到其他的属性?
前端代码 ``` wx.uploadFile({ url: app.globalData.url + "wxUploadImage.do",//请求地址 filePath: tempFilePaths[0], name: 'file', header: { "Content-Type": "multipart/form-data", 'accept': 'application/json' }, formData: { 'userId': app.globalData.user_login.data.workcode }, success: function (res) { var data = res.data; data = JSON.parse(data); console.log(data.data); that.setData({ isUploadFinish: true, imgUrl: tempFilePaths[0], uploadImgUrl:data.data }); //do something } }); ``` java代码 ``` @ResponseBody @RequestMapping("/wxUploadImage") public String upload(HttpServletRequest request, @RequestParam(value="file", required=false) MultipartFile file) { Map<String, Object> dataMap = new HashMap<String, Object>(); try { System.out.println("执行upload"); request.setCharacterEncoding("UTF-8"); String userId = request.getParameter("userId"); System.out.println("userId="+userId); if(!file.isEmpty()) { String fileName = file.getOriginalFilename(); String path = null; String type = null; type = fileName.indexOf(".") != -1 ? fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()) : null; System.out.println(type); if (type != null) { if ("GIF".equals(type.toUpperCase())||"PNG".equals(type.toUpperCase())||"JPG".equals(type.toUpperCase())) { // 项目在容器中实际发布运行的根路径 String realPath = request.getSession().getServletContext().getRealPath("/"); // 自定义的文件名称 String trueFileName = String.valueOf(System.currentTimeMillis()) +"--"+userId+"."+ type; // 设置存放图片文件的路径 path = "/upload/signFault/" + trueFileName; System.out.println("realPath==="+realPath); file.transferTo(new File(realPath + path)); dataMap.put(DATA, path); dataMap.put(RESPONSE, SUCCESS); return JsonUtils.toJson(dataMap); }else { dataMap.put(RESPONSE, FAILURE); dataMap.put(MSG, "请求异常"); return JsonUtils.toJson(dataMap); } }else { dataMap.put(RESPONSE, FAILURE); dataMap.put(MSG, "请求异常"); return JsonUtils.toJson(dataMap); } }else { dataMap.put(RESPONSE, FAILURE); dataMap.put(MSG, "请求异常"); return JsonUtils.toJson(dataMap); } } catch (Exception e) { e.printStackTrace(); dataMap.put(RESPONSE, FAILURE); dataMap.put(MSG, "请求异常"); return JsonUtils.toJson(dataMap); } } ``` 后台接受不到那个userid,只显示执行了update 最主要的是测试服能用,正式服就拉稀了
uploadify 带一个值上传文件,JAVA spring MVC 获取不到值?
<script type="text/javascript"> $(document).ready( function() { $('#file_upload').uploadify( { 'swf' : '${root}uploadify/uploadify.swf',//上传按钮的图片,默认是这个flash文件 'uploader' : '${root}importFile', //上传所处理的服务器 'cancelImg' : 'uploadfiy/uploadify-cancel.png',//取消图片 'fileTypeDesc' : 'excle2003文件',//允许上传的文件类型的描述,在弹出的文件选择框里会显示 'fileTypeExts' : '*.xls',//允许上传的文件类型,限制弹出文件选择框里能选择的文件 'uploadLimit' : 1, 'queueSizeLimit' : 1, 'method' : 'post', 'buttonText' : '请选择文件', 'onUploadSuccess' : function(file, data, response) { try { var json = $.parseJSON(data); $('#msg').html( json.msg + '。记录数为:' + json.recordCount); } catch (e) { } }, progressData : 'speed', 'auto' : false, 'multi' : false, 'onError' : function(errorType, errObj) { alert('The error was: ' + errObj.info) }, 'onUploadError' : function(file, errorCode, errorMsg, errorString) { alert('The file ' + file.name + ' could not be uploaded: ' + errorString); } }); }); function checkData() { var data = $('#questionType').val(); if (data == '0') { alert("请选择题目内容分类"); return false; } return true; } function upload() { if (!checkData()) return false; var formData = { 'questionType' : $('#questionType').val() }; alert(formData.questionType); $('#file_upload').uploadify('settings', 'formData', formData); $('#file_upload').uploadify('upload', '*'); } </script> <div style="width: 300px; margin: 50px auto;"> <select name="questionType" id="questionType" style="margin: 0px auto; width: 300px;"> <option value="0">请选择</option> <c:forEach var="ranges" items="${list}"> <option value="${ranges.id}">${ranges.title}</option> </c:forEach> </select> <div class="form-group" style="padding-top: 40px;"> <input type="file" id="file_upload" name="file_upload" placeholder="excle2003文件" /> </div> <div class="form-group"> <input type="button" value="上传" class="btn btn-default" onclick="javascript:upload();" /> </div> <div style="color: red; margin: auto;" id="msg"></div> </div> </div> 后台获取 questionType的value值,获取不到这是什么问题
使用webupload,IE9频繁出现崩溃
做了个javaWeb项目,上传图片用的是webupload,但是用IE9,页面频繁崩溃! ```/* webuploader END */ var $wrap = $('#uploader'), flashVersion = (function () { var version; try { version = navigator.plugins['Shockwave Flash']; version = version.description; } catch (ex) { try { version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash') .GetVariable('$version'); } catch (ex2) { version = '0.0'; } } version = version.match(/\d+/g); return parseFloat(version[0] + '.' + version[1], 10); })(); if (!WebUploader.Uploader.support('flash') && WebUploader.browser.ie < 10) { // flash 安装了但是版本过低。 if (!flashVersion || (flashVersion < 11.5)) { //layer.alert("您当前浏览器flash插件版本较低,可能无法使用系统中功能,<a href='https://www.flash.cn/cdm/latest/flashplayerax_install_cn.exe'>点击升級</a>"); layer.confirm('您当前浏览器沒有flash,可能无法使用系统中功能,前往升级?', { btn : [ '确定', '取消' ]//按钮 }, function(index) { layer.close(index); //此处请求后台程序,下方是成功后的前台处理…… // var index = layer.load(0,{shade: [0.7, '#393D49']}, {shadeClose: true}); //0代表加载的风格,支持0-2 //window.location.href="www.hao123.com"; window.open('https://www.flash.cn/cdm/latest/flashplayerax_install_cn.exe'); }); // 压根就没有安转。 } else { //layer.alert("您当前浏览器沒有flash,可能无法使用系统中功能,<a href='https://www.flash.cn/cdm/latest/flashplayerax_install_cn.exe'>点击安裝</a>"); layer.confirm('您当前浏览器沒有flash,可能无法使用系统中功能,前往安装?', { btn : [ '确定', '取消' ]//按钮 }, function(index) { layer.close(index); //此处请求后台程序,下方是成功后的前台处理…… // var index = layer.load(0,{shade: [0.7, '#393D49']}, {shadeClose: true}); //0代表加载的风格,支持0-2 //window.location.href="www.hao123.com"; window.open('https://www.flash.cn/cdm/latest/flashplayerax_install_cn.exe'); }); } // return; } else if (!WebUploader.Uploader.support()) { layer.msg('Web Uploader 不支持您的浏览器!',{icon:6}); //return; } //var flag =true; var uploader = WebUploader.create({ auto: true, // swf文件路径 swf: '<%=basePath %>/static/webupload/Uploader.swf', // 文件接收服务端。 server:'<%=basePath %>/main/webuploader', // 选择文件的按钮。可选。 // 内部根据当前运行是创建,可能是input元素,也可能是flash. pick: '#picker', fileVal:'file', // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! resize: false, formData: { folderId: "<%=requestBean.getFolderId()%>" }, accept: { title: 'Files', extensions: 'gif,jpg,jpeg,bmp,png,pdf,doc,docx,txt,xls,xlsx,ppt,pptx,zip,mp3,mp4,text,csv', mimeTypes: 'image/*,text/*' //word +',application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document' //excel +',application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' //ppt +',application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation' +',application/pdf' +',application/zip' +',application/csv' +',.csv' }, duplicate :true, //chunked: true, //分片处理 //chunkSize: 5 * 1024 * 1024, //每片5M chunkRetry:false,//如果失败,则不重试 //duplicate:false,//是否可重复选择同一文件 //fileSingleSizeLimit: 10*1024*1024,//限制大小10M,单文件 //fileSizeLimit: allMaxSize*1024*1024,//限制大小10M,所有被选文件,超出选择不上 fileNumLimit:20 }); // 当有文件被添加进队列的时候 uploader.on( 'fileQueued', function( file ) { var $list = $("#webuploaderList"); $list.append( '<div id="' + file.id + '" class="item">' + '<h4 class="info">' + file.name + '</h4>' + '<p class="state">等待上传...</p>' + '</div>' ); }); // 文件上传过程中创建进度条实时显示。 uploader.on( 'uploadProgress', function( file, percentage ) { $("#uploadfileQueue").css("display","block"); var $li = $( '#'+file.id ), $percent = $li.find('.progress .progress-bar'); // 避免重复创建 if ( !$percent.length ) { $percent = $('<div class="progress progress-striped active" style="width:300px; height:10px; border:2px solid #09F;">' + '<div class="progress-bar" role="progressbar" style="width: 0%;height:100%; background-color:#09F; text-align:center; line-height:10px; font-size:10px;">' + '</div>' + '</div>').appendTo( $li ).find('.progress-bar'); } $li.find('p.state').text('上传中...'); $percent.html( Math.round(percentage * 100) +"%" ); $percent.css( 'width', percentage * 100 + '%' ); }); uploader.on('uploadSuccess', function (file,response) { if(response.ISOK=='N'){ layer.msg(response.message); $('#' + file.id).find('p.state').text('上传出错:'+response.message); } else{ $('#' + file.id).find('p.state').text('已上传'); if(response.newFid){ newFid = response.newFid; } } }); uploader.on('uploadError', function (file) { //layer.msg('上传出错!'+handler); $('#' + file.id).find('p.state').text('上传出错!'); }); // 完成上传完了,成功或者失败,先删除进度条。 uploader.on( 'uploadComplete', function(file ) { $( '#'+file.id ).find('.progress').remove(); }); //所有文件上传完成 uploader.on('uploadFinished',function(file){ var changeList; $.ajax( { url: '<%=basePath %>/userSession/changeListBySwfUpload', dataType: "json", async:false, cache:false, success: function(data, textStatus, jqXHR) { changeList=data; }, error: function(jqXHR, textStatus, errorThrown) { //console.log(errorThrown); } }); if(changeList == undefined){ return false; } var v_div=$("<div style='width:600px'>"); var v_table=$("<table id='fileuploadsinfo'>").css("width","500px").appendTo(v_div); var v_hred_tr=$("<tr>").css("width","500px").css("height","40px"); $("<th>").text("文件名").css("width","200px").css("height","40px").appendTo(v_hred_tr); $("<th>").text("备注").css("width","300px").css("height","40px").appendTo(v_hred_tr); v_hred_tr.appendTo(v_table); $.each(changeList,function(idx,v_sel){ var v_body_tr=$("<tr>").css("width","500px").css("height","40px").attr("cFid",v_sel.cFId); $("<td>").text(v_sel.file).css("width","200px").css("height","40px").appendTo(v_body_tr); var v_rmk=$("<input type='text' class='remark'>").css("width",'90%').css("height","99%"); $("<td>").css("width","300px").css("height","40px").appendTo(v_body_tr).append(v_rmk); v_body_tr.appendTo(v_table); /* var v_div=$("<div ><span style='display: none' ><input type='text' name='cFId' value='"++"'/></span><span style='width: 100px' ><input type='text' name='cFReName' readonly='readonly' value='"+v_sel.file+"'/></span><span style='width: 400px' ><input type='text' name='cFNote'/></span></div>"); v_div.appendTo(v_form); */ //changeList.splice(idx,1); //return true; }); layer.open({ type: 1, title:"", area: ["500px", "300px"], content:v_div.html(), closeBtn:1, btnAlign: 'c', scrollbar:true, btn:['确定','取消'], yes: function(index, layero){ var jsonArray=[]; var v_flag=false; $("#fileuploadsinfo").find('tr').not(':eq(0)').each(function(idx,itr){ var v_cFid=$(itr).attr("cFid"); var v_remark=$(itr).find('.remark').val(); if($.trim(v_remark).length<=20){ jsonArray.push({"fileInfo":v_cFid+'_'+v_remark}); }else{ layer.msg("备注输入有误,请输入20位以内的备注信息"); v_flag=true; return false; } }); //var str= JSON.stringify(jsonArray) if(v_flag){ return false; } $.ajax({ url: '<%=basePath %>/main/saveNote', type: 'post', dataType: 'json', data:{datas:jsonArray}, async:false, success: function (data) { uploader.reset(); //alert(33); uploader.destory(); if(data.flag=="Y"){ layer.closeAll(); layer.msg("上传成功",{icon:6},function(){ if(newFid){//如果新增了文件夹则刷新父级窗口 parent.location.reload(); }else{ window.location.reload(); } }); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { } }); } , btn2: function(index, layero){ if(newFid){//如果新增了文件夹则刷新父级窗口 parent.location.reload(); }else{ window.location.reload(); } } }); }); /* webuploader END */ ``` 崩溃错误描述如下 : 问题签名: 问题事件名称: APPCRASH 应用程序名: iexplore.exe 应用程序版本: 9.0.8112.16421 应用程序时间戳: 4d76255d 故障模块名称: Flash32_32_0_0_207.ocx 故障模块版本: 32.0.0.207 故障模块时间戳: 5ceb04d1 异常代码: c0000005 异常偏移: 002d7e64 OS 版本: 6.1.7601.2.1.0 .256.48 区域设置 ID: 2052 其他信息 1: 2826 其他信息 2: 2826ae5788d1601e09d13cfdc228c271 其他信息 3: a6c4 其他信息 4: a6c4ac129c9c2b4af725e35cc1a77c20 联机阅读隐私声明: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804 如果无法获取联机隐私声明,请脱机阅读我们的隐私声明: C:\Windows\system32\zh-CN\erofflps.txt
springmvc+ajax上传图片的问题。传过去的是空值,这是为什么?
html代码 <form id="uploadForm" enctype="multipart/form-data"> <div class="email"> <label for="email-input">邮箱*</label> <input id="email" name="email" type="email"/> </div> <div class="name"> <label for="name-input">账号*</label> <input id="account" name="account" type="text"/> </div> <div class="website"> <label for="website-input">密码*</label> <input id="password" name="password" type="password"/> </div> <div class="name"> <label for="name-input">昵称*</label> <input id="nickname" name="nickname" type="text"/> </div> <div class="message"> <label for="message-input">介绍*</label> <textarea id="introduce" name="introduce" ></textarea> </div> <div class="website"> <label >头像*</label> <input id="file" type="file"/> </div> <div id="picTip"></div> <div class="submit"> <input type="button" value="注册" id="btn" name="btn"/> </div> </form> ----------------------------------------------------------------------------------- js代码: <script type="text/javascript"> $(function () { $("#btn").click(function () { var f = $("#file").val(); if(f==null||f==""){ $("#picTip").html("<span style='color:Red'>错误提示:上传文件不能为空,请重新选择文件</span>"); }else{ var extname = f.substring(f.lastIndexOf(".")+1,f.length); extname = extname.toLowerCase();//处理了大小写 if(extname!= "jpeg"&&extname!= "jpg"&&extname!= "gif"&&extname!= "png"){ $("#picTip").html("<span style='color:Red'>错误提示:格式不正确,支持的图片格式为:JPEG、GIF、PNG!</span>"); } } adduser(); }); }); function adduser(){ var email=$("#email").val(); var account=$("#account").val(); var password=$("#password").val(); var nickname=$("#nickname").val(); var introduce=$("#introduce").val(); var formData = new FormData($("#uploadForm")[0]); alert(formData) alert(email) $.ajax({ url:"./zhuce", data:{"email":email,"account":account,"password":password,"nickname":nickname,"introduce":introduce,"formData":formData}, type:"post", async: false, cache: false, contentType: false, processData: false, success: function (data) { if(data=="error"){ alert("注册失败!") } if(data=="success"){ alert("成功!") window.location.href="login.jsp" } } }); } </script> ----------------------------------------------------------------------- 后台controller代码: @RequestMapping(value="/zhuce") @ResponseBody public String zhuce(String email,String account,String password,String nickname,String introduce,@RequestParam(value="file",required = false) CommonsMultipartFile file,HttpServletRequest request, Model model){ System.out.println("邮箱和账号"+email+","+account); System.out.println("hhhh"); System.out.println("filename:"+file.getOriginalFilename()); String path = request.getSession().getServletContext().getContextPath(); System.out.println("path:"+path); return "success"; } ---------------------------------------------------------------- 运行结果是: 邮箱和账号null,null hhhh java.lang.NullPointerException--获取文件名字这里是空的
jquerymobile写的一个登陆页面问题
用jquerymobile写了一个登陆页面,后台是spring3+mybatis,主要的思路是异步提交验证,如果验证失败,直接在页面上提示错误信息,验证成功则通过changePage刷新页面。 遇到的问题是: 1、在spring的controller中返回这个页面后,登录页面虽然展现出来了,但是$(document).ready(function() {...})没有起作用,手工强制刷新页面可以起作用; 2、Ajax的POST方式没有起作用,点击按钮总是GET方式。。。 页面代码如下,请各位大侠帮看下,真心感谢! <%@ page language="java" pageEncoding="UTF-8" %> <%@ include file="/WEB-INF/views/include/taglibs.jsp" %> <!DOCTYPE html> <html> <head> <title>login</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" /> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script type="text/javascript"> function onSuccess(data, status) { data = $.parseJSON(data) //data = $.trim(data); if(data.flag == "Y") { //成功,进入新页面 $.mobile.changePage(data.url); } else { $("#message").css("color", "#ff0000"); $("#message").text(data.msg); } } $(document).ready(function() { alert("ready"); $("#btnLogin").click(function(e){ var formData = $("#frmLogin").serialize(); alert(formData); $.ajax({ type: "POST", url: "${ctx}/login", cache: false, data: formData, success: onSuccess }); e.preventDefault(); }); }); </script> <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script> </head> <body> <div id="message"></div> <form id="frmLogin"> <label for="memberId">会员ID:</label> <input name="memberId" id="memberId" data-mini="true" data-clear-btn="true" type="text" autofocus required> <label for="password">密码:</label> <input name="password" id="password" data-mini="true" type="password" autofocus required> <br/> <div align="center"> <input value="提交验证" id="btnLogin" type=submit data-inline="true" data-mini="true" data-icon="check" data-theme="b"> <!-- <input value="重 填" type="reset" data-inline="true" data-mini="true" data-icon="delete" data-theme="b"> --> </div> </form> </body> </html>
ssh项目页面url包含Action名时ajax上传文件返回错误500
本人正在做一个网站,暂时做到能够正常登录和注销,现在希望在已登录页面加一个文件上传功能。 目前该功能代码已经完成,在一般的jsp和html页面内都能正常使用,在该网站项目内虽然也能正常使用,但是在执行success后会跳出java.lang.nullpointerexception,无法回到原页面上。现已经确认后台代码没有问题,问题发生在action的return后。代码如下,这一方面的一些原理我的确还不是很懂,还请各位指点一二,谢谢。 1.jsp、html以及网站内jsp都是使用的这一段代码,前两者可用项目内的不可用 ``` <form id="myForm"> 选择Excel:<input type="file" name="input"> <button onclick="btn()">上传</button> </form> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script type="text/javascript"> function btn(){ var formData = new FormData($("#myForm")[0]); $.ajax({ type : "post", url : "/Web_project/Fill/upload", data : formData, async: false, cache: false, contentType: false, processData: false, error: function (result) { alert('异常'); }, success: function (result) { if(result.error == ""){ alert("已上传"); }else{ alert("失败") } } }); } </script> ``` 2.upload.action对应的result ``` @Result(name="uploaded",type="json",params={"root","mm"}) ``` 3.jsp页面下的url和项目action跳转后的url,这是我发现的两者唯一区别,不知道是不是能证明什么问题 ![图片说明](https://img-ask.csdn.net/upload/201903/06/1551811215_326338.jpg) ![图片说明](https://img-ask.csdn.net/upload/201903/06/1551811226_117785.jpg) ******************** ************************************ 虽然不是很清楚原因,但是我个人认为是ajax提交了页面后,页面刷新,触发了登录用的action,再次检验用户登录,但是却没有取到数据,所以空指针。(个人猜测,没有详细了解) 我给action这段代码加了一个判断session是否为空,不为空则直接返回的代码段,这么一来在ajax提交页面后,action内验证登录的部分代码不会再次运行,页面也确实没有出现错误而是正常停留在原页面。 虽然没有能直接解决我的问题,但是很感谢各位的建议和帮助。
ajax处理大量数据进度条超时 假死。
当处理数据量较大处理时间较长时,后台已经处理数据完成但前台的进度条不关闭一直在运行。 ![图片说明](https://img-ask.csdn.net/upload/201809/17/1537176363_708396.png) js代码 (function ($) { $.fn.loadUpload=function(options){ var options=$.extend(defaults,options||{}); var _this=$(this); var supportTransition = (function(){ var s = document.createElement('p').style, r = 'transition' in s || 'WebkitTransition' in s || 'MozTransition' in s || 'msTransition' in s || 'OTransition' in s; s = null; return r; })(); // WebUploader实例 var uploader; if ( !WebUploader.Uploader.support() ) { alert( 'Web Uploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器'); throw new Error( 'WebUploader does not support the browser you are using.' ); } // 实例化 uploader = WebUploader.create({ pick: { id: $(this), label: options.filename }, paste: document.body, accept: { title: 'files', extensions: 'xlsx', mimeTypes: '.xlsx' }, formData: { tradeid:options.myversion }, // swf文件路径 swf: base_url+"/static/plugins/ueditor/third-party/webuploader/Uploader.swf", disableGlobalDnd: true, chunked: true, server: base_url+"/importWorkProcedure/saveimport2", fileNumLimit: 1,//只允许上传一个 fileSizeLimit: 50 * 1024 * 1024, // 200 M fileSingleSizeLimit:50 * 1024 * 1024 // 50 M }); uploader.onFileQueued = function( file ) { } uploader.on( 'all', function( type ) { var stats; switch( type ) { case 'uploadFinished': $(_this).css({"display":"none"}) break; case 'startUpload': $(_this).attr('disabled',"true"); break; case 'stopUpload': break; } }); uploader.onFileQueued = function( file ){ var title=$("#myversion").find("option:selected").text(); layer.confirm('确定要导入【'+title+"】工序集?", { btn : [ '确定', '取消' ]//按钮 }, function(index) { layer.close(index); uploader.upload(); }); } // 文件上传成功,给item添加成功class, 用样式标记上传成功。 uploader.on( 'uploadSuccess', function( file,ret) { parent.layer.closeAll(); console.log(ret); $(options.fileurl).append("<a target='_blank' href='"+ret.refpath+"'>["+ret.refname+"]上传成功</a>") $(options.fileurl).append("<input type='hidden' id='myversion_' value='"+ret.myversion+"'/>"); $(options.fileurl).append("<input type='hidden' id='tradeid_' value='"+ret.tradeid+"'/>"); $(options.fileurl).append("<a style='margin-left:5px;' class='btn btn-danger' onclick='deleteimg();' >删除</a>") $(options.queuelist).hide(); }); // 文件上传过程中创建进度条实时显示。 uploader.on( 'uploadProgress', function( file, percentage ) { if(!$(options.queuelist+" .progress-bar").length){ $(options.queuelist).append('<div class="progress progress-striped active">' + '<div class="progress-bar" role="progressbar" style="width:100%">后台正在处理中,请耐心等待...' + '</div>' + '</div>'); } $(options.queuilist+" .progress-bar").css( 'width', percentage * 100 + '%' ); }); /** * 验证文件格式以及文件大小 */ uploader.on("error", function (type) { if (type == "Q_TYPE_DENIED") { layer.msg("请上传excel文件"); } else if (type == "Q_EXCEED_SIZE_LIMIT") { layer.msg("文件大小不能超过50M"); }else { layer.msg("请上传excel文件"); } }); deleteimg=function(){ var myversion=$("#myversion_").val(); var tradeid=$("#tradeid_").val(); var url=base_url+"/importWorkProcedure/deleteImportData.html"; $.post(url,{"myversion":myversion,"tradeid":tradeid},function(data){ if(data==true||data=="true"){ $(options.fileurl).html(""); $(_this).css({"display":"block"}); } },"json") } var defaults={ queuelist:".queueList", fileurl:"#fileurl", filename:"点击选择文件" } }; })(jQuery);
SpringBoot版本升级问题,上传图片功能失效
我们公司的版本本来是1.2.2,我将POM里面的版本改为了1.3.3,然后测试类Mockito报错,我添加了Mockito依赖,发现了上传图片失败的问题。 这个项目的前端是用原生AJAX,我打了断点,发现根本没进图片的那个Controller。。 POM: <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.3.RELEASE</version> </parent> 前端: $(document).ready(function () { $("#upload_img").click(function(){ $("#uploadImgLinkage").click(); }); $("#uploadImgLinkage").change(function(){ var r = null; if(window.XMLHttpRequest){ r = new XMLHttpRequest(); }else if(window.ActiveXObject){ r = new ActiveXObject("Microsoft.XMLHttp"); }; /*******************************************回调函数*******************************************/ r.onreadystatechange = function(){ if(r.readyState == 4){ $("#uploadImgLinkage").val(""); /*--------------------------1,状态码 200 执行成功--------------------------*/ if(r.status == 200){ var results = r.responseText; $(".canvas").empty(); var result = eval("("+results+")"); if(result.success == true){ $(".canvas").append('<img id="targetImg" src="' + result.imgUrl+""+'"/>'); }else{ alert( (result.code == null ? "" : result.code) + " " + result.msg); } }else{ alert("上传失败,请重新尝试!图片最大只能上传" + $("#maxFile").val() + "MB!"); }; }; } r.open("post", "/upload/image" , true); var data = new FormData(); data.append("imgUpload" , selectId('uploadImgLinkage').files[0]); data.append("uploadTable" , $("#imgTable").val()); r.send(data); }); !! status状态是400,走到2的时候 后台: @RequestMapping(value = "image" , method = {RequestMethod.POST , RequestMethod.GET}) @ResponseBody public Map<String,Object> doUploadImage(@RequestParam("imgUpload") MultipartFile file , @RequestParam(value = "uploadTable" , required = false)String uploadTable ){ Map<String,Object> result = new HashMap<String,Object>(); try { //上传图片 String name = this.aliyunUtils.uploadFile(file, uploadTable+"/"+NameUtils.getDisposeUUID() + "." + ImageTypeUtils.getExtName(file.getOriginalFilename())); this.uploadServiceCRU.doSaveImg(name, uploadTable); result.put("success", true); result.put("imgUrl", constantIP.getImgIp() + name); } catch (Exception e) { logger.error(e.getMessage(),e); result.put("success", false); result.put("code", "500"); result.put("mgs", "图片存储失败,请重新尝试"); } return result; }
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了
这篇文章通过对话的形式,由浅入深带你读懂 AVL 树,看完让你保证理解 AVL 树的各种操作,如果觉得不错,别吝啬你的赞哦。 1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。 2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。 3、它的左右子树也分别可以充当为二叉查找树。 例如: 例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
《C++ Primer》学习笔记(六):C++模块设计——函数
专栏C++学习笔记 《C++ Primer》学习笔记/习题答案 总目录 https://blog.csdn.net/TeFuirnever/article/details/100700212 —————————————————————————————————————————————————————— 《C++ Primer》习题参考答案:第6章 - C++模块设计——函数 文章目录专栏C+...
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
MySQL数据库总结
文章目录一、数据库简介二、MySQL数据类型(5.5版本)三、Sql语句(1)Sql语句简介(2)数据定义语言DDLcreate,alter,drop(3)数据操纵语言DMLupdate,insert,delete(4)数据控制语言DCLgrant,revoke(5)数据查询语言DQLselect(6)分组查询与分页查询group by,limit四、完整性约束(单表)五、多表查询六、MySQL数
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片
相关热词 基于c#波形控件 c# 十进制转十六进制 对文件aes加密vc# c#读取栈中所有的值 c# rsa256加密 好 学c# 还是c++ c# 和java的差距 c# curl网络框架 c# https证书请求 c# 中崎
立即提问