java http post 同时发送文件流与数据

您好,提问者:
首先表单、文件同时发送那么肯定是可以的,关于获取的话很难了,因为发送文件的话form必须设置为:multipart/form-data数据格式,默认为:application/x-www-form-urlencoded表单格式。我们称之为二进制流和普通数据流。

刚才说了<form的entype要改为multipart/form-data才能进行发送文件,那么这个时候你表单的另外数据就也会被当成二进制一起发送到服务端。

获取读取过来的内容如下:

//拿到用户传送过来的字节流
InputStreamis=request.getInputStream();
byte[]b=newbyte[1024];
intlen=0;
while((len=is.read(b))!=-1){
System.out.println(newString(b,0,len));
}

上面如图的代码,我们发现发送过来的表单数据跟文件数据是混乱的,我们根本没办法解析(很麻烦),这个时候我们就需要用到第三方辅助(apache 提供的fileupload.jar)来进行获取。

这个网上有很多代码的,如果有什么不明白可以去自行网络,或者追问,我这里只是给你提供的思路,希望理解,谢谢!

㈡ java里http服务器如何将文件制成一个下载路径

/**
*文件下载
*/
@RequestMapping("/downloadfile")
(StringresStr,HttpServletResponseresponse){
PrintWriterpw=null;
StringBuffersb=newStringBuffer();

try{
StringfileName="文件名";
response.setCharacterEncoding("UTF-8");
response.setContentType("application/x-msdownload");
response.addHeader("Cache-Control","no-cache,no-store,must-revalidate");
response.addHeader("charset","utf-8");
response.addHeader("Pragma","no-cache");
response.setHeader("Content-Disposition","attachment;filename=""+fileName+"";filename*=utf-8''"+fileName);
sb.append(resStr);
pw=response.getWriter();
pw.write(sb.toString());
pw.close();
response.flushBuffer();
}catch(IOExceptione){
logger.info("下载文件出错");
e.printStackTrace();
if(pw!=null){
pw.close();
}
}finally{
if(pw!=null){
pw.close();
}
}
}

resStr 字段传写入文件里的内容

㈢ java 获得http下载文件的真实名称

importjava.net.*;
importjava.io.*;
publicclassURLConnectionDemo{
publicstaticvoidmain(String[]args)throwsException{
URLurl=newURL("http://www.scp.e.cn/pantoschoolzz/BG/Bord/Message/DownloadMessageAttachment.aspx?ID=215");
URLConnectionuc=url.openConnection();
StringfileName=uc.getHeaderField(6);
fileName=URLDecoder.decode(fileName.substring(fileName.indexOf("filename=")+9),"UTF-8");
System.out.println("文件名为:"+fileName);
System.out.println("文件大小:"+(uc.getContentLength()/1024)+"KB");
Stringpath="D:"+File.separator+fileName;
FileOutputStreamos=newFileOutputStream(path);
InputStreamis=uc.getInputStream();
byte[]b=newbyte[1024];
intlen=0;
while((len=is.read(b))!=-1){
os.write(b,0,len);
}
os.close();
is.close();
System.out.println("下载成功,文件保存在:"+path);
}
}

//输出内容:

文件名为:090602、09-10(1)校历.xls

文件大小:42KB

下载成功,文件保存在:D:90602、09-10(1)校历.xls

㈣ java如何实现收取一个HTTP的请求xml文件.根据文件内容作出响应.返回一个xml文件

接收的完整例子

http://www.tutorialspoint.com/jsp/jsp_file_uploading.htm

读写 XML
http://..com/q?ct=17&tn=ikaslist&lm=0&rn=10&pn=0&fr=search&word=java+xml&f=sug&rsp=java+xml

㈤ java,http下载文件

http是流传输,一次请求中你是不能将流截断的,如果想做到你说的只有两种形式:内
1、就是你使用的方式,多容段读取(其实就是断点续传的原理),多个请求,每个请求请求一部分,如果你觉得效率低可以从两方面优化
(1)不要用URLConnecion,而使用HttpClient之类的工具包进行请求
(2)使用多线程并发请求,其实就是断点续传了,迅雷就是几个线程一起下嘛
2、只请求一次,请求全部的,将全部流缓存到内存中(byte[]),然后根据你的需要分段截取,写入文件

㈥ 用JAVA下载HTTP文件时遇到问题

importjava.net.*;
importjava.io.*;
publicclassURLConnectionDemo{
publicstaticvoidmain(String[]args)throwsException{
URLurl=newURL("http://www.scp.e.cn/pantoschoolzz/BG/Bord/Message/DownloadMessageAttachment.aspx?ID=215");
URLConnectionuc=url.openConnection();
StringfileName=uc.getHeaderField(6);
fileName=URLDecoder.decode(fileName.substring(fileName.indexOf("filename=")+9),"UTF-8");
System.out.println("文件名为:"+fileName);
System.out.println("文件大小:"+(uc.getContentLength()/1024)+"KB");
Stringpath="D:"+File.separator+fileName;
FileOutputStreamos=newFileOutputStream(path);
InputStreamis=uc.getInputStream();
byte[]b=newbyte[1024];
intlen=0;
while((len=is.read(b))!=-1){
os.write(b,0,len);
}
os.close();
is.close();
System.out.println("下载成功,文件保存在:"+path);
}
}

//给你一个下载的例子吧,仅供参考。

㈦ http如何实现同时发送文件和报文(用java实现)

这个算是web项目中的文件上传功能接口。

  1. java的web项目现在可以使用idea编辑器创建spring boot项目快速构建。(很简单,具体步骤请网络)

  2. 文件上传功能也网络吧,一大堆。关键词: spring boot 文件上传

㈧ java file可以读取链接中的内容吗 如:ile("https://);里面是个图片链接地址

http的话就用httpclient。open后,可以返回一个InputStream。这个就是你要读到文件流。 原理的话,参考你用浏览器打开这个链接显示的内容。 这个返回的是一个HTML网页,需要你解析出里面的文字(一般来说取body中间的内容就行) 其实对于这种文件一般用FTP来下载的。楼上写的那个不对,哈哈。 需要的话自己最好去查一下,怎么用,我有代码,不过告诉你的话也不太好? URL url = new URL("http://你的地址"); URLConnection connection = url.openConnection(); InputStream is = connection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is,"gb2312")); 下面就是解析这个字符串来,自己来吧

㈨ java http 传送文件到另一个台服务器并接收,还有别的参数要传,请问怎么实现

socket吧,具体网络好了