java HttpURLConnection 接口文件传输文件上传

摘要:
1publicStringuploadImg(MultipartFileimgFile,StringuploadUrl)throwsException{23URLrl=newURL(上传url);4HttpURLConnectionconn=(HttpURLConnection)url.openConnection();5conn.setConnectTimeout(10000);6co
 1 public   String uploadImg(MultipartFile imgFile, String uploadUrl) throws  Exception {
 2 
 3         URL url = new URL(uploadUrl);
 4         HttpURLConnection conn = (HttpURLConnection) url.openConnection();
 5         conn.setConnectTimeout(10000);
 6         conn.setRequestMethod("POST");
 7         conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=----123456789");
 8         conn.setDoInput(true);
 9         conn.setDoOutput(true);
10 
11         OutputStream os = new DataOutputStream(conn.getOutputStream());
12         StringBuilder body = new StringBuilder();
13         body.append("------123456789
");
14         body.append("Content-Disposition: form-data; name='images'; filename='" + imgFile.getName() + "'
");
15 
16         //没有传入文件类型,同时根据文件获取不到类型,默认采用application/octet-stream
17       String   contentType ="";
18       String filename=imgFile.getName();
19         //contentType非空采用filename匹配默认的图片类型
20         if (filename.endsWith(".png")) {
21             contentType = "image/png";
22         }else if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".jpe")) {
23             contentType = "image/jpeg";
24         }else if (filename.endsWith(".gif")) {
25             contentType = "image/gif";
26         }else if (filename.endsWith(".ico")) {
27             contentType = "image/image/x-icon";
28         }
29 
30         if (contentType == null || "".equals(contentType)) {
31             contentType = "application/octet-stream";
32         }
33 
34         body.append("Content-Type: "+contentType+"

");
35         os.write(body.toString().getBytes());
36 
37             InputStream is =  imgFile.getInputStream();
38             byte[] b = new byte[1024];
39             int len = 0;
40             while ((len = is.read(b)) != -1) {
41                 os.write(b, 0, len);
42             }
43             String end = "
------123456789--";
44             os.write(end.getBytes());
45 
46             //输出返回结果
47         BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
48         StringBuilder stringBuilder = new StringBuilder();
49         String line = "";
50         for (line = br.readLine(); line != null; line = br.readLine()) {
51 
52             stringBuilder.append(line);
53         }
54         return stringBuilder.toString();
55 
56    }

免责声明:文章转载自《java HttpURLConnection 接口文件传输文件上传》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#读写ini文件详解深入理解“CPU 使用率”下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

excel数据批量导入

1.  html           <form action="@Url.Action("UpLoadFile")" enctype="multipart/form-data" method="post">                                  <td>                         ...

调用支付宝转账接口(单笔)

下面这几个类都是支付宝demo里面的,直接拿过来用就可以 using System.Web; using System.Text; using System.IO; using System.Net; using System; using System.Collections.Generic; namespace Com.Alipay { pu...

RSA加密解密及RSA签名和验证

此Demo包含两个文件,建立一个解决方案,然后建立两个文件,一个为Form,一个为Class,把代码分别复制进去即可 RSA正确的执行过程:加密解密:1、获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥2、加密3、解密签名和验证:签名:1、获取密钥,这里是产生密钥,实际应用中可以从各种存储介质上读取密钥2、获取待签名的Hash码3、签名其中...

接口与委托

在接口中可以声明方法、属性、索引指示器和事件,接口中并不提供它们的实现。因此接口是函数成员声明的集合。如果类或结构从一个接口派生,则这个类或结构负责实现该接口中所声明的所有函数成员。一个接口可以继承多个接口,而一个类或结构可以实现多个接口。由于C#语言不支持多继承,因此,如果某个类需要继承多个类的行为时,只能使用多个接口加以说明。 委托类型,在功能上它类...

MyEclipse 安装svn 插件步骤详情

方法一:在线安装 打开HELP- > MyEclipse Configuration Center。切换到SoftWare标签页。 点击Add Site 打开对话框,在对话框Name输入Svn,URL中输入:http://subclipse.tigris.org/update_1.6.x 在左边栏中找到Personal Site中找到SVN展开。将...

设计模式之外观模式(门面模式)以及如何利用到接口设计中

什么是外观模式   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。  外观模式应用场景 简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。...