c++的传递的二进制流进行文件上传操作
来源:互联网 发布:域名云解析有什么用 编辑:程序博客网 时间:2024/05/21 19:37
java对c++的传递的二进制流进行文件上传
最近公司的手机项目需要模仿微信的朋友圈,大概就是拍个照片,写段文字,点击发布。我这里负责把图片上传到云平台,文字存到数据库,这个小项目是用来接收c++传来的二进制流并把流转换成图片。用到了servlet3.0 API
第一个servlet是用来上传文件的
第二个service是用来截取filename的复制代码
最近公司的手机项目需要模仿微信的朋友圈,大概就是拍个照片,写段文字,点击发布。我这里负责把图片上传到云平台,文字存到数据库,这个小项目是用来接收c++传来的二进制流并把流转换成图片。用到了servlet3.0 API
第一个servlet是用来上传文件的
第二个service是用来截取filename的
- package servlet;
- import java.io.IOException;
- import java.util.Collection;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.MultipartConfig;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.Part;
- import service.Service;
- @SuppressWarnings("serial")
- @WebServlet(urlPatterns={"/upload"})
- @MultipartConfig(fileSizeThreshold=99999990,location="D:/temp",maxFileSize=1024*1024*1024,maxRequestSize=100000000)
- public class UploadServlet extends HttpServlet {
- private Service service = new Service();
-
- public void service(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- /**获取上传文件的封装对象集合parts*/
- Collection<Part>parts=request.getParts();
- /**分别处理每一个part*/
- for(Part part:parts){
- /**获取part名字*/
- String partName=part.getName();
- /**如果该名字等于file,c++是会把表单名文件字段的name设置成file的*/
- if(partName.equals("file")){
- /**获取content-disposition消息头,这里获取之后是一大串字符串,需要经过处理才能获取文件名*/
- String header = part.getHeader("content-disposition");
- /**用service获取文件名*/
- String filename=service.getFileName(header);
- /**输出文件名*/
- System.out.println(filename==null?"":filename);
- /**写入目标文件夹
- * 要注意的是,如果不在开头写location,必须要写存放文件的文件夹的绝对路径,否则就只要
- * 写文件名即可成都网络推广
- * */
- part.write(filename);
- }
- /**获取字段名,输出字段值*/
- if(partName.equals("title")){
- String value=request.getParameter(partName);
- System.out.println(value);
- }
- }
- }
- }
- package service;
- public class Service {
- public String getFileName(String header){
- /**这个如果不是用来接受来自html表单的文件的话是不用写的*/
- if(header.contains("filename=\"\"")){
- return null;
- }
- StringBuilder sb=new StringBuilder(header);
- /**StringBuilder截取文件名,如果有更高效的方法请提供*/
- return sb.delete(0, sb.indexOf("filename=\"")).substring(sb.indexOf("\"")+1, sb.lastIndexOf("\""));
- }
- public static void main(String[] args) {
- String c="form-data; name=\"file\"; filename=\"12.txt\"";
- System.out.println(new Service().getFileName(c));
- }
- }
0 0
- c++的传递的二进制流进行文件上传操作
- 使用IO流进行文件的拷贝
- 用缓冲流进行文件的复制
- java中IO流进行文件的创建和删除
- Java中通过输入输出流进行文件的读写
- 用IO流进行文件读写的封装工具类
- java中使用文件输入流和文件输出流进行文件读写的用例!
- 使用Java IO 流进行文件的复制,复制成功,却打不开复制的文件
- 【我的Java笔记】IO流_使用IO流进行文件的复制和粘贴
- 第十四周阅读程序2:运用文件流进行文件的复制
- .net 流——使用流进行文件复制
- 使用IO流进行文件拷贝和文件夹拷贝
- 利用io流进行文件读取和写入
- 使用二进制流进行深拷贝不关流的原因
- C中文件的操作。。。。
- DELPHI通过ACTIVESYNC连接到移动设备,并进行文件的复制,删除等操作!
- Java I/O通过输入输出流进行文件读写(二)用户界面
- 基于缓冲字节输入输出流进行复制文件的操作
- 1005. 继续(3n+1)猜想 (25)
- Android 动画效果弹出PopupWindow,同时屏幕背景变暗
- 选择排序
- HBase 中存储结构
- SQL FOREIGN KEY 约束 高级教程
- c++的传递的二进制流进行文件上传操作
- BSD GPL Apache 开源协议
- iOS本地推送
- MySQL、Oracle、SQL Server查询前n条记录
- Delphi XE7使用手机调试Android出现[Install_Parse_Failed_Inconsistent_Certificates]问题
- android 软键盘 InputMethodManager
- 浅谈在JAVA中使用接口引用实现类
- 韩顺平.循序渐进学.java.从入门到精通(二)
- SQL CHECK 约束 高级教程