当前位置: 首页 > news >正文

网站建设技术人员工作总结浙江建设信息港网成绩查询

网站建设技术人员工作总结,浙江建设信息港网成绩查询,企业网站备案密码怎么找回,有经验的常州网站建设上传文件开始想用apache的开源库获取文件#xff0c;但是失败了#xff0c;要么文件不全#xff0c;要么就完全为空#xff0c;还是自己写。文件上传请求头的部分内容contentType:multipart/form-data; boundary----WebKitFormBoundaryHpUAY0qCryu0Oc7o我们需要获取boundar…上传文件开始想用apache的开源库获取文件但是失败了要么文件不全要么就完全为空还是自己写。文件上传请求头的部分内容contentType:multipart/form-data; boundary----WebKitFormBoundaryHpUAY0qCryu0Oc7o我们需要获取boundary 后面的数据主要作用是标识文件在流中的范围。当然了这个boundary是会变的每次都要重新获取。请求头之后就是发送的数据(以一个文件为例)第一行------WebKitFormBoundaryHpUAY0qCryu0Oc7o第二行Content-Disposition: form-data; namefile; filenameic_excel.xml filename:ic_excel.xml第三行Content-Type: text/xml第四行\r\n\倒数第四行\\r\n倒数第三行------WebKitFormBoundaryHpUAY0qCryu0Oc7o倒数第二行ic_excel.xml\倒数第一行\------WebKitFormBoundaryHpUAY0qCryu0Oc7o--也就是说我们需要按照行的方式来读取以免错过这些boundary又不能够使用Java提供的readLine在二进制文件几乎没有换行我们的字节数组是盛不下一行的。private LineData getLineData(InputStream inputStream, int capacity) {byte[] bytes new byte[capacity];int index 0;try {while (true) {int current inputStream.read();if (current \r) {//检查下一个是否是\nint next inputStream.read();bytes[index] (byte) current;bytes[index] (byte) next;if (next \n) {//是\n是一个crlf换行退出循环break;} else if (next -1) {//因为是-1所以退出while 不会添加换行基本不会出现这种情况可以根据自己需要抛出异常index--;break;} //current 是正常的一个\r} else if (current -1) {//因为是-1所以退出while 不会添加换行基本不会出现这种情况可以根据自己需要抛出异常break;} elsebytes[index] (byte) current;if (index capacity - 1) {//不够下一次的\r\n了break;}}return new LineData(bytes, index);} catch (IOException e) {e.printStackTrace();return null;}}static class LineData {byte[] bytes;String string;int length;LineData(byte[] bytes, int length) {this.bytes bytes;this.string new String(bytes, 0, length);this.length length;}}最后一个boundary(倒数第三行)的上面是一个换行(还要注意哦所有的换行都是\r\n)所以在我们不知道下一行是不是boundary时是不可以贸然写入文件的。LineData lastLine null;while (true) {LineData temp getLineData(inputStream, capacity);if (temp null) {//出现异常break;}if (temp.string.contains(first)) {//上一行(lastLine)是crlf这样就没有输出这个内容就退出了break;}if (lastLine ! null) {bufferedOutputStream.write(lastLine.bytes, 0, lastLine.length);}lastLine temp;}文件读取完毕之后还要检查后面的boundary如果后面的内容不是我们预期的那样这个文件基本就是错误的了。解决办法将这几行数据作为文件内容继续读取知道下一组boundary结束组合。还可以根据文件类型设定字节数组比如文本文件每行一百的都是足够的如果是二进制文件需要使用更长的数组。
http://www.sadfv.cn/news/8708/

相关文章:

  • 海南省住房和城市建设厅网站免费做一建或二建题目的网站
  • 成都官方网站建设设计制作合同模板
  • 公司网站建设怎么st3网站开发
  • 咸阳专业学校网站建设网站投放
  • 良乡网站建设快手营销软件
  • 视屏网站制作网站建设代理都有哪些
  • 网站怎么做接口wordpress新浪jquery
  • 新网站做百度推广 收录赣州科技有限公司
  • 专门做图片的网站cms展示型企业网站制作费用
  • 镇江网站设计公司报价北京公司网站制作方法
  • 舟山市住房城乡建设局网站公司做网站费用会计分录
  • 自己做的网站百度搜不到中国进入一级战备2023
  • 重庆网站推广 软件社区平安建设基层网站
  • 帮别人做网站赚钱吗西宁做网站公司排名
  • 做外贸的网站需要什么应用网站开发
  • 做网站郴州专业网站托管
  • 十堰哪里有做网站的企业网络组网
  • 郑州网站建设方案服务藁城网站建设
  • 做自己的网站能赚钱吗多少钱立案
  • 网站推广营销收费chrome手机版
  • 企业建一个网站互联网营销与推广
  • 做网站如何连数据库网站开发都用什么软件
  • 高端大气上档次的网站电商进货渠道
  • word网站的链接怎么做的网站建设合同有哪些
  • 网站制作大概费用网站网站开发的
  • phpcms 网站打不开哈尔滨自助板建站
  • 台州网站制作服务做直播网站一定要idc吗
  • 塔城建设局网站nuxt做多页面网站
  • 商城网站建设报价邳州城乡建设局网站
  • 做全屏式网站尺寸是多大重庆最新宣传片