关于C# POST传文件流 java springmvc接收问题记载
来源:互联网 发布:商城网站如何优化 编辑:程序博客网 时间:2024/09/21 06:36
C# 上传文件流 代码如下:
public static string HttpUploadFile()
{
string url = "http://localhost:8080/prod/api/upload.json";
string path = "D:\\img\\test.bmp";
// 设置参数
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";
string name = Base64("administrator:e10adc3949ba59abbe56e057f20f883e");
SetHeaderValue(request.Headers, "Authorization", "Basic " + Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(name)));
string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线
request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;
byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");
byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");
int pos = path.LastIndexOf("\\");
string fileName = path.Substring(pos + 1);
//请求头部信息
StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"file\";filename=\"{0}\"\r\nContent-Type:application/octet- stream\r\n\r\n", fileName));
byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString());
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
byte[] bArr = new byte[fs.Length];
fs.Read(bArr, 0, bArr.Length);
fs.Close();
Stream postStream = request.GetRequestStream();
postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length);
postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);
postStream.Write(bArr, 0, bArr.Length);
postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
postStream.Close();
//发送请求并获取相应回应数据
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
Stream instream = response.GetResponseStream();
StreamReader sr = new StreamReader(instream, Encoding.UTF8);
//返回结果网页(html)代码
string content = sr.ReadToEnd();
return content;
}
springmvc 接收代码如下:
@RequestMapping("/upload")
public ModelAndView upload(@RequestParam(value="file",required=true) MultipartFile[] file){
try {
FileUtils.writeByteArrayToFile(new File("c:/test.jpg"), input2byte(file[0].getInputStream()));
} catch( Exception e) {
e.printStackTrace();
}
return null;
}
public static final byte[] input2byte(InputStream inStream) throws IOException {
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[100];
int rc = 0;
while ((rc = inStream.read(buff, 0, 100)) > 0) {
swapStream.write(buff, 0, rc);
}
byte[] in2b = swapStream.toByteArray();
return in2b;
}
仅此记录,代码可直接使用
- 关于C# POST传文件流 java springmvc接收问题记载
- springMVC发送POST请求时接收不到参数问题
- C#接收POST数据流
- 【Java】SpringMVC Post&Get编码问题
- java springmvc post表单提交问题
- 关于springmvc怎么完成中文字符的接收问题
- 关于springMVC 接收json字符串集合的问题
- 关于springMVC 接收json字符串集合的问题
- 关于FTP程序接收文件的问题
- php curl post请求,java后台用request文件流方式接收
- php curl post请求,java后台用request文件流方式接收
- java模拟post传输文件到tomcat服务器端servlet接收
- c# 接收手动post请求
- C# Post接收发送XML
- aspx页面接收不到post的文件流
- java Servlet 接收POST数据格式
- Java 接收无参数post
- 关于springmvc无法引入js文件问题
- 2017Summer 集训有感0-0
- python学习——生成器使用杨辉三角
- 使用 Diff 和 Meld 工具比较两个目录的不同处
- A
- Tensorflow之快速加载MNIST数据集
- 关于C# POST传文件流 java springmvc接收问题记载
- 8-15
- java中的锁分类
- 投票系统开发问题合集
- 基础动态规划题 火车站(上车下车)——递推
- hdu 1527 取石子游戏
- HDOJ 2035 人见人爱A^B
- 异常 try...catch ...finally throws和throw的区别
- crash tools command usage