• 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"); }
  • 相关阅读:
    简单的自我介绍
    学习总结(北航助教陈彦吉)
    2019春季第十二周助教总结
    2019春季第十一周助教总结
    第十一周作业
    2019春季第十周助教总结
    2019春季第九周助教总结
    第九周作业
    2019春季第八周助教总结
    第八周作业
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/11903762.html
Copyright © 2020-2023  润新知