zoukankan      html  css  js  c++  java
  • Java模拟表单POST上传文件

    JAVA模拟表单POST上传文件

    import java.awt.image.BufferedImage;
    import java.awt.image.ColorModel;
    import java.io.BufferedReader;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.Map;
    import java.util.concurrent.Callable;

    import javax.imageio.IIOImage;
    import javax.imageio.ImageIO;
    import javax.imageio.ImageTypeSpecifier;
    import javax.imageio.ImageWriteParam;
    import javax.imageio.ImageWriter;

    import org.apache.commons.lang.StringUtils;

    import com.grand.mysql_handler.mapper.SystemMapper;

    import net.sf.json.JSONObject;


    private String uploadImage(String name,byte[] buf) throws Exception { String filename = name.substring(name.lastIndexOf("/") + 1); final String newLine = " "; final String boundaryPrefix = "--"; final String boundary = "----theorydance"; String api_url = "http://localhost:8080/filestorage/app/api/fileUpload"; HttpURLConnection conn = (HttpURLConnection) new URL(api_url).openConnection(); conn.setDoInput(true); conn.setDoOutput(true); conn.setReadTimeout(20000); conn.setConnectTimeout(5000); conn.setRequestMethod("POST"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("Charset", "UTF-8"); conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); StringBuilder sb = new StringBuilder(); // key参数 sb.append(boundaryPrefix + boundary + newLine); sb.append("Content-Disposition: form-data; name="name"" + newLine); sb.append(newLine); sb.append((name==null?"default":name) + newLine); // 图片数据 sb.append(boundaryPrefix + boundary + newLine); sb.append("Content-Disposition: form-data; name="myfile"; filename=""+filename+""" + newLine); sb.append("Content-Type: application/octet-stream" + newLine); sb.append(newLine); OutputStream out = new DataOutputStream(conn.getOutputStream()); out.write(sb.toString().getBytes()); out.write(buf); out.write(newLine.getBytes()); String endFlag = boundaryPrefix + boundary + boundaryPrefix + newLine; out.write(endFlag.getBytes()); out.flush(); out.close(); System.out.println("响应状态码:"+conn.getResponseCode()); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line = null; String content = ""; while((line=br.readLine())!=null) { content += line; } JSONObject json = JSONObject.fromObject(content); System.out.println(json.toString()); return json.getJSONObject("data").getString("url"); }
  • 相关阅读:
    BZOJ3052:[WC2013]糖果公园
    浅谈莫队
    BZOJ2120:数颜色(莫队版)
    BZOJ3809:Gty的二逼妹子序列
    BZOJ3289:Mato的文件管理
    BZOJ2038:[2009国家集训队]小Z的袜子
    浅谈分块
    Django框架之 Cookie与Session组件
    Django框架之 forms组件
    Django框架之 自定义分页器组件
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/11903762.html
Copyright © 2011-2022 走看看