如何将上图中选中的文件流保存到本地
2条回答 默认 最新
- threenewbee 2016-06-01 10:45关注
String contentType = request.getContentType(); try{ if(contentType.indexOf("multipart/form-data") >= 0){ //读入上传的数据 in = new DataInputStream(request.getInputStream()); int formDataLength = request.getContentLength(); if(formDataLength > MAX_SIZE){ out.println("<P>上传的文件字节数不可以超过" + MAX_SIZE + "</p>"); return; } //保存上传文件的数据 byte dataBytes[] = new byte[formDataLength]; int byteRead = 0; int totalBytesRead = 0; //上传的数据保存在byte数组 while(totalBytesRead < formDataLength){ byteRead = in.read(dataBytes,totalBytesRead,formDataLength); totalBytesRead += byteRead; } //根据byte数组创建字符串 String file = new String(dataBytes); //out.println(file); //取得上传的数据的文件名 String saveFile = file.substring(file.indexOf("filename=\"") + 10); saveFile = saveFile.substring(0,saveFile.indexOf("\n")); saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\"")); int lastIndex = contentType.lastIndexOf("="); //取得数据的分隔字符串 String boundary = contentType.substring(lastIndex + 1,contentType.length()); //创建保存路径的文件名 String fileName = rootPath + saveFile; //out.print(fileName); int pos; pos = file.indexOf("filename=\""); pos = file.indexOf("\n",pos) + 1; pos = file.indexOf("\n",pos) + 1; pos = file.indexOf("\n",pos) + 1; int boundaryLocation = file.indexOf(boundary,pos) - 4; //out.println(boundaryLocation); //取得文件数据的开始的位置 int startPos = ((file.substring(0,pos)).getBytes()).length; //out.println(startPos); //取得文件数据的结束的位置 int endPos = ((file.substring(0,boundaryLocation)).getBytes()).length; //out.println(endPos); //检查上载文件是否存在 File checkFile = new File(fileName); if(checkFile.exists()){ out.println("<p>" + saveFile + "文件已经存在.</p>"); } //检查上载文件的目录是否存在 File fileDir = new File(rootPath); if(!fileDir.exists()){ fileDir.mkdirs(); } //创建文件的写出类 fileOut = new FileOutputStream(fileName); //保存文件的数据 fileOut.write(dataBytes,startPos,(endPos - startPos)); fileOut.close(); }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么